A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴硕 中级黑马   /  2012-10-14 16:30  /  1157 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

查看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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马