
java 如何获取枚举的值
用户关注问题
怎样遍历Java枚举中的所有常量?
我想在程序中获取Java枚举定义的所有枚举常量,应该使用什么方法实现遍历?
使用values()方法遍历枚举常量
Java枚举类自带一个静态的values()方法,可以返回包含所有枚举常量的数组。通过这个数组,可以遍历所有枚举值,比如:
for (EnumType item : EnumType.values()) {
System.out.println(item);
}
这样可以方便地访问和操作每个枚举常量。
如何获取枚举中的自定义属性值?
我在枚举中定义了额外的属性和构造方法,运行时要怎么取到这些自定义属性的值?
通过对应的getter方法访问枚举属性
在枚举中定义属性时,需要提供相应的getter方法来访问它们。示例:
public enum Status {
SUCCESS(200, "成功"),
ERROR(500, "错误");
private int code;
private String description;
Status(int code, String description) {
this.code = code;
this.description = description;
}
public int getCode() {
return code;
}
public String getDescription() {
return description;
}
}
使用时,通过调用枚举常量的getter方法即可获取对应值。
能否通过枚举的名称动态获取对应的枚举值?
如果我有一个字符串变量,内容是枚举常量的名称,怎么将它转换成对应的枚举类型实例?
利用valueOf方法进行名称到枚举实例的转换
Java枚举类提供了静态方法valueOf(String name),它可以根据传入的字符串返回对应的枚举常量。示例:
String name = "SUCCESS";
Status status = Status.valueOf(name);
注意,传入的名称必须与枚举常量一致,否则会抛出IllegalArgumentException异常。