【发布时间】:2018-06-22 20:09:53
【问题描述】:
我的项目有多个枚举,有些类有多个枚举作为属性。 我需要创建一个日志,在编辑对象时显示以前的值和新值。我知道将普通字段作为字符串、整数等进行比较...但我不能使用枚举来做到这一点。
我是这样比较的,但不能使用枚举:
public static Map<Object, List<Object>> compareObjects(Object a, Object b){
...Some varibles declaration
Field[] fieldsA a.getClass().getDeclaredFields();
Field[] fieldsB b.getClass().getDeclaredFields();
int i = 0;
for(; i < a.length; i++){
...some codintions
if(fieldsA[i].get(a).equals(fieldsB[i].get(b)){
...
【问题讨论】:
-
一个枚举文字没有它的声明类型就没有意义,它只是一个字符串。除非你知道它属于哪个
enum类型,否则你做不到。 -
你能否展示你的类和你需要比较的代码?
-
如果你知道它们的实际类型,你会如何比较这些枚举值?
标签: java reflection enums