我想找到一个问题的最佳解决方案,我已经映射了一个简单的bean结构发送到基于浏览器的JavaScript应用程序。目前的需求是管理旧Java后端的大部分显示控件。目前,我们正在生产的值对象内置了无显示的逻辑服务作风层,如:复杂的豆映射
public class Example1 {
String value1;
Boolean value2;
Example3 value3;
public String getValue1(){...}
public void setValue1(){...}
....
}
我的目标是能够到一个通用的结构在这样所有字段映射,它增加了新的显示结构这是前端所需要的。我想仅管理原始结构类(Example1类)结构,并简单地将包装中的额外值设置为旧的服务层。
通用结构将采取以下类的形式:
public class Presentable<T> {
T value;
boolean visible = true;
boolean mandatory = false;
List<String> errors = new ArrayList<>();
public T getValue() {...}
public void setValue(T value) {...}
...
}
最终的结果将类似于以下,其中值是在原结构相同的价值:
public class Example2{
Presentable<String> value1;
Presentable<Boolean> value2;
Presentable<Example3> value3;
public Presentable<String> getValue1(){...}
public void setValue1(){...}
...
}
有没有解决这个问题,而不写一个Example2风格的类,并在每一个值复制?我愿意修改Example1类,因为它不会影响旧服务的使用者。
谢谢。
更新:我发现的唯一解决方案是使用带有注释的代码生成。虽然我确实写了一个快速工作的POC,但它很脏。 –
根据客户需求,您需要拥有Example1的多个对象。那么为什么你需要一个通用的类。您可以使用前端数组列表映射,所以每当用户添加一个新数组时,它就会自动在ArrayList中添加另一个Example1对象,您将拥有一个列表,其中包含example1的所有对象。 –
Dileep