黑马程序员技术交流社区

标题: 枚举的valueOf方法的疑问 [打印本页]

作者: 吴硕    时间: 2012-10-14 16:30
标题: 枚举的valueOf方法的疑问
查看api发现,Enum只有一个静态方法:public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
如果是Enum调用valueOf方法需要两个参数
如果是具体的一个枚举类调用valueOf方法,可以只传入name参数

为什么可以使用只接收一个参数的valueOf方法呢?而这个貌似的重载方法并不存在

一个例子:
  1. public class GenderTest
  2. {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args)
  7.         {
  8.                 //返回与字符串"MALE"的枚举实例
  9.                 Gender g = Gender.valueOf("MALE");
  10.                
  11.                 g.name = "男";
  12.                
  13.                 System.out.println(g+"---"+g.name);
  14.         }

  15. }

  16. /**
  17. * 定义一个性别的枚举
  18. * 包含两个元素:MALE, FEMALE
  19. * @author wuss
  20. *
  21. */
  22. public enum Gender
  23. {
  24.         MALE, FEMALE;
  25.        
  26.         public String name;
  27. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2