为什么 valueOf
有两个参数?
在Java documentation for valueOf
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
Parameters:
enumType - the Class object of the enum type from which to return a constant
name - the name of the constant to return
但我在网上看到的大多数例子都说:
enum WorkDays {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY;
}
测试:
WorkDays day1 = WorkDays.valueOf("MONDAY");
System.out.println(day1); // >>> MONDAY
这个方法好像只用了一个参数?
最佳答案
正如您在之前的评论中指出的那样,您发现文档中的文本令人困惑,并且由于您的个人资料表明您是新手程序员:
Enum 是您将声明的所有枚举的父类(super class)。
在您的示例中,WorkDays 可以看作是 Enum 类的一个特定案例。
valueOf() 静态方法文档是为此父 Enum 类编写的。
这意味着在您的情况下,它将被称为:
Enum.valueOf(WorkDays.class, "MONDAY")
。
现在,由于您创建了自己的 Enum(即 WorkDays),因此不需要使用此静态父方法。您可以只使用您自己创建的枚举公开的方法。
WorkDays.valueOf("Monday")
这是“隐式声明”,意味着它会存在于您自己创建的每个枚举中。
关于java Enum valueOf有两个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55265192/