java中的可读键值对数据结构

时间:2017-12-05 12:51:38

标签: java design-patterns methods field

我有一个键值数组

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字段已更新。我们显示

  

first name已更新

在UI中

。这是审计。  是否有可读和可维护的方式来表示这样的键值对?

2 个答案:

答案 0 :(得分:3)

如果我错了,请纠正我,但似乎(以这种方式传递字段名称和字段值)您正在尝试动态构建自定义对象。

如果这是您的目的,那么您已经完整XY problem了,因为您已经找到了解决问题的方案,然后您正在尝试调整这个解决方案,你应该回到问题, 一个标准的,工程化的最佳实践解决方案:Builder Pattern

如果某个对象上有很多字段,但在某些情况下只需要使用其中的一部分,而在其他情况下只需要使用其他部分,则使用构建器,仅设置所需的字段,然后调用build()方法,获取您的对象,而无需执行您正在执行或置换所有构造函数的内容。

Java中这种模式的

Here is an example

答案 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;
    }
    }

它更具可读性和可维护性。