我有一个键值数组
String[] fields = {"firstName", "middleName", "id"};
String[] fieldValues = {"first name", "middle name", "student id"};
我有一个比较两个bean的方法,并返回一个具有不同字段值的String数组。
public static String[] beanCompare(Object A, Object B,
String[] fields, String[] fieldValue);
示例如果我传递具有不同firstName和id的Studentbean。 它会返回
["first name", "student id"]
。
我需要比较100个豆类 返回值更新活动日志表。假设firstName字段已更新。我们显示
在UI中
first name
已更新
。这是审计。 是否有可读和可维护的方式来表示这样的键值对?
答案 0 :(得分:3)
如果我错了,请纠正我,但似乎(以这种方式传递字段名称和字段值)您正在尝试动态构建自定义对象。
如果这是您的目的,那么您已经完整XY problem了,因为您已经找到了解决问题的方案,然后您正在尝试调整这个解决方案,你应该回到问题, 一个标准的,工程化的最佳实践解决方案:Builder Pattern。
如果某个对象上有很多字段,但在某些情况下只需要使用其中的一部分,而在其他情况下只需要使用其他部分,则使用构建器,仅设置所需的字段,然后调用build()
方法,获取您的对象,而无需执行您正在执行或置换所有构造函数的内容。
答案 1 :(得分:0)
所以,enum为我工作。
public enum FieldEnum {
firstName("first name"), middleName("middle name"), id("student id");
String value;
FieldEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
它更具可读性和可维护性。