搜索
您的当前位置:首页正文

枚举中valueOf方法的实现

来源:二三娱乐
  • 例子:
image.png
  • 枚举类中包含两个枚举元素:PUBLIC, PRIVATE
  • 在main方法中调用valueOf方法,结果分别是true,true,false

源码解析

  • 主体思路:是将枚举的元素通过反射(method)转化为一个key和value都是枚举元素的HashMap<String, T>,例如上面案例中的HashMap的数据为:
image.png
  • valueOf方法调用enumType.enumConstantDirectory()方法
    image.png
  • 调用Class类的getEnumConstantsShared方法

    image.png
  • 先通过个getMehotd方法获取到Method

  • 然后调用invoke方法获取到PUBLICPRIVATE

image.png

总结:

  • 反射的知识点可以看这篇文章:
  • 提供了将枚举元素转化为Map的一种思路
Top