静态 valueOf() 方法有什么意义? (枚举)
What is the point of the static valueOf() method? (enumerations)
我正在学习枚举,但不明白此方法的用途。
示例:
enum Fruits{
apple, pear, orange
}
class Demo{
f = Fruits.valueOf("apple"); //returns apple... but I had to type it!
// so why wouldn't I save myself some time
// and just write: f = Fruits.apple; !?
}
valueOf
方法的要点是为您提供一种获取 Fruits
值的方法,以 String
s 的形式呈现给您的程序 - 例如,当值来自配置文件时或用户输入:
String fruitName = input.next();
Fruits fruit = Fruits.valueOf(fruitName);
以上水果名称由终端用户提供。您的程序可以将其作为 enum
读取和处理,而不知道在 运行 时间会提供哪种水果。
我同意@dasblinkenlight,如果你有一些运行时输入,你可以使用Enum.valueOf()方法。
String input="apple" //It may be passed from some where
Fruits fruit = Fruits.valueOf(input); // Here you will get the object of type Fruits
我还想在这里添加一件事,如果此输入不存在枚举,则 valueOf() 方法将抛出运行时异常,而不是返回 null。例外情况是:
Exception in thread "main" java.lang.IllegalArgumentException: No enum constant
我正在学习枚举,但不明白此方法的用途。
示例:
enum Fruits{
apple, pear, orange
}
class Demo{
f = Fruits.valueOf("apple"); //returns apple... but I had to type it!
// so why wouldn't I save myself some time
// and just write: f = Fruits.apple; !?
}
valueOf
方法的要点是为您提供一种获取 Fruits
值的方法,以 String
s 的形式呈现给您的程序 - 例如,当值来自配置文件时或用户输入:
String fruitName = input.next();
Fruits fruit = Fruits.valueOf(fruitName);
以上水果名称由终端用户提供。您的程序可以将其作为 enum
读取和处理,而不知道在 运行 时间会提供哪种水果。
我同意@dasblinkenlight,如果你有一些运行时输入,你可以使用Enum.valueOf()方法。
String input="apple" //It may be passed from some where
Fruits fruit = Fruits.valueOf(input); // Here you will get the object of type Fruits
我还想在这里添加一件事,如果此输入不存在枚举,则 valueOf() 方法将抛出运行时异常,而不是返回 null。例外情况是:
Exception in thread "main" java.lang.IllegalArgumentException: No enum constant