Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从外部访问Java枚举字段_Java_Enums - Fatal编程技术网

从外部访问Java枚举字段

从外部访问Java枚举字段,java,enums,Java,Enums,如何访问名称字段 public class Animals { public enum animal{ a1("CAT", 4), a2("DOG", 4); } String Name; int E; public animal(String Name, int E){ this.Name = Name; this.E = E; } } 这是可以做到的,但是您有许多语法错

如何访问
名称
字段

public class Animals {

    public enum animal{
        a1("CAT", 4),
        a2("DOG", 4);
    }

    String Name;
    int E;
    public animal(String Name, int E){
        this.Name = Name;
        this.E    = E;
    }
}

这是可以做到的,但是您有许多语法错误。关键是为枚举成员变量提供getter方法

public enum Animal {
  a1("CAT", 4), a2("DOG", 4);
  private String Name;
  private int E;

  private animal(String Name, int E)
  {
    this.Name = Name;
    this.E = E;
  }

  public String getName() {
    return Name;
  }

  public int getE() {
    return E;
  }
}
然后,您可以在程序其余部分的任何位置访问这些值

Animal.a1.getName();

假设您有一个内部
enum
,如下所示:

public class Animals {

    public enum Animal {
        a1("CAT", 4), a2("DOG", 4);

        final String Name;
        final int E;

        private Animal(String Name, int E) {
            this.Name = Name;
            this.E = E;
        }

        public String getName() {
            return Name;
        }
    }
}
您可以使用字段(因此没有括号)获取名称

但最好将所有字段设置为私有并使用getter:

Animals.Animal.a1.getName()

如果我理解正确,我相信OP是在问:

给定字符串“a1”,返回值为Animal.a1的Animal类型的对象

…在这种情况下,您要查找的方法是Enum.valueOf(Class,String)


你的问题是什么还不清楚。你能澄清一下吗?你的例子也有一些编译错误。请把它们修好。
Animals.Animal.a1.getName()
 String enumName = "a1";
 Animal a = Enum.valueOf (Animal.class (enumName));
 if (null == a) {
      // error handler …
 } else {
      // do something interesting with “a”
 }