[英]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.