查看api发现,Enum只有一个静态方法:public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
如果是Enum调用valueOf方法需要两个参数
如果是具体的一个枚举类调用valueOf方法,可以只传入name参数
为什么可以使用只接收一个参数的valueOf方法呢?而这个貌似的重载方法并不存在
一个例子:- public class GenderTest
- {
- /**
- * @param args
- */
- public static void main(String[] args)
- {
- //返回与字符串"MALE"的枚举实例
- Gender g = Gender.valueOf("MALE");
-
- g.name = "男";
-
- System.out.println(g+"---"+g.name);
- }
- }
- /**
- * 定义一个性别的枚举
- * 包含两个元素:MALE, FEMALE
- * @author wuss
- *
- */
- public enum Gender
- {
- MALE, FEMALE;
-
- public String name;
- }
复制代码 |