实例化枚举

Aar*_*esh 4 java enums

下面的代码给我带来了很多错误.那么为什么不可能只有一个像下面的枚举只有构造函数,以便它可以实例化其他地方?

public  class TestEnum{
     enum Animal
     {
         public Animal(String name)
         {
             this.name = name;
         }
         String name;
     }
}
Run Code Online (Sandbox Code Playgroud)

有没有任何方法来实现枚举或它是否违反了枚举的基本属性/功能,它应该只用于创建一组,比如说现成的对象?

Ell*_*sch 9

因为枚举由枚举的常量值组成(在编译和运行时是常量)

例如,您的代码是(几乎)正确的

enum Animal {
  Dog("Bark"), Cat("Meow"); // Dog and Cat.
  Animal(String name) {     // No, it can't be public.
    this.name = name;
  }

  String name;
}
Run Code Online (Sandbox Code Playgroud)

如果您想要动态值,请使用a class.