簡體   English   中英

在Java中使用枚舉創建構造函數

[英]Creating constructors using Enums in Java

我想用一個將枚舉作為正式參數的構造函數定義一個類(因此,只能傳遞符合枚舉類型的參數)。 這是我所擁有的(一般來說,因為我正在上大學並且不想竊):

public class EnumThing
{
private SomeConstant aConstant;
private enum SomeConstant {CONSTANT1, CONSTANT2, CONSTANT3};

public EnumThing(SomeConstant thisConstant)
{
   this.aConstant = thisConstant;
}

// Methods

但是當我嘗試

EnumThing doodah = new EnumThing(CONSTANT1);

我收到一個錯誤:找不到符號-變量CONSTANT1

這是我第一次嘗試將枚舉用於所有內容。 它們似乎功能強大,但似乎我用錯了它們。 任何幫助深表感謝!

首先,您需要public枚舉,否則您將無法在EnumThing類之外訪問它:

public class EnumThing {
    public enum SomeConstant {CONSTANT1, CONSTANT2, CONSTANT3}

    // ...
}

然后,正確訪問枚舉的成員:

EnumThing doodah = new EnumThing(EnumThing.SomeConstant.CONSTANT1);

完整的工作示例(請注意,正確的用法是: SomeConstant.CONSTANT1 ):

public class EnumThing {
    private SomeConstant aConstant;

    private enum SomeConstant {CONSTANT1, CONSTANT2, CONSTANT3}

    public EnumThing(SomeConstant thisConstant) {
        this.aConstant = thisConstant;
    }

    public static void main(String[] args) {
        EnumThing doodah = new EnumThing(SomeConstant.CONSTANT1);
    }
}

請注意,您可以使用private枚舉。 但是它只能在您的班級( EnumThing )中訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM