- 例子:
- 枚举类中包含两个枚举元素:PUBLIC, PRIVATE
- 在main方法中调用valueOf方法,结果分别是true,true,false
源码解析
- 主体思路:是将枚举的元素通过反射(method)转化为一个key和value都是枚举元素的HashMap<String, T>,例如上面案例中的HashMap的数据为:
- valueOf方法调用
enumType.enumConstantDirectory()
方法
image.png
-
调用Class类的
image.pnggetEnumConstantsShared
方法
-
先通过个getMehotd方法获取到Method
-
然后调用invoke方法获取到
PUBLIC
和PRIVATE
总结:
- 反射的知识点可以看这篇文章:
- 提供了将枚举元素转化为Map的一种思路