Java通用枚举功能使用java 8默认方法和实用程序类

时间:2017-05-10 14:29:12

标签: java generics enums interface java-8

以下是我提出的失败尝试,指的是Java Generic Enum class using Reflection

想要找到更好的方法来做到这一点。我用这种方法找到了几个问题:

  • 每次我需要传递类类型。示例 - EnumUtility.fromKey(Country.class,1)

  • fromSet在城市和国家/地区都重复了

(setf (cdr *tail*) nil)
*tail*
==> (3)
*list*
==> (1 2 3)

1 个答案:

答案 0 :(得分:3)

无法避免将枚举类传递给fromKey。你怎么知道哪些枚举常量检查所请求的密钥?注意:该方法中的第二个参数应为int类型,而不是Integer。在Integer实例上使用==将不会比较数值,它将比较对象引用!

EnumUtility.fromSet应该可以正常工作,因此每个枚举类根本不需要fromSet方法。请注意,EnumUtility.fromSet根本不需要Class参数,实际上您的代码不使用该参数。