我的要求是我想将Enum作为函数中的参数传递,并希望从函数中打印Enum的值。对于示例Enum,Category.ONE应该打印1。类似地,对于TWO应该打印2,对于三个应该打印3。
我分配了Enum值,例如1、2、3。
enum Category {
ONE(1),
TWO (2),
THREE(3);
private final Integer num;
Category(Integer val) {
num = val;
}
}
public class EnumDemo1 {
public static void printEnumValue(Category category){
System.out.println(category.name()); // Want to print the value of ENUM. 1, 2, 3
}
public static void main(String[] args) throws Exception {
for(Category category: Category.values()){
printEnumValue(category);
}
}
}
答案 0 :(得分:1)
您可以添加一个返回num
的方法,例如:
enum Category {
ONE(1),
TWO (2),
THREE(3);
private final Integer num;
Category(Integer val) {
num = val;
}
public int getValue() {
return num;
}
}
然后从printEnumValue
调用它,例如:
public static void printEnumValue(Category category){
System.out.println(category.getValue()); // Want to print the value of ENUM. 1, 2, 3
}
答案 1 :(得分:0)
为该字段声明一个吸气剂,或将其公开:
enum Category {
ONE(1),
TWO (2),
THREE(3);
private final Integer num;
Category(Integer val) {
num = val;
}
public int getNum() {
return num;
}
}
public class EnumDemo1 {
public static void printEnumValue(Category category){
System.out.println(category.getNum()); // Want to print the value of ENUM. 1, 2, 3
}
public static void main(String[] args) throws Exception {
for(Category category: Category.values()){
printEnumValue(category);
}
}
}
另外,枚举具有ordinals
,该枚举返回一个整数,描述枚举值的顺序。
答案 2 :(得分:-2)
删除num字段的final
修饰符并声明getter方法
enum Category {
ONE(1),
TWO (2),
THREE(3);
//
private Integer num;
Category(Integer val) {
this.num = val;
}
public int getValue() {
return num;
}
}
public class EnumDemo1 {
public static void printEnumValue(Category category){
System.out.println(category.getValue()); // Want to print the value of ENUM. 1, 2, 3
}
public static void main(String[] args) throws Exception {
for(Category category: Category.values()){
printEnumValue(category);
}
}
}
有关更多信息,请参见https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html