我想用一个将枚举作为正式参数的构造函数定义一个类(因此,只能传递符合枚举类型的参数)。这是我所拥有的(由于我正在上大学并且不想窃而概括化):

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);

10-05 23:39