Я пытаюсь найти наилучшее решение проблемы, с которой я сталкиваюсь, с отображением простой структуры bean-структуры, которая отправляется в приложение на основе браузера. Нынешнее требование состоит в том, чтобы управлять большинством элементов управления отображением на старой базе данных 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, поскольку он не влияет на потребителей старой службы.
Спасибо.
Обновление: Единственное решение, которое я нашел, это использование генерации кода с аннотациями. Хотя я написал быстрый рабочий стол, это очень грязно. –
вам нужно иметь несколько объектов из примера 1 на основе требований клиента. Итак, для чего вам нужен общий класс. Вы можете использовать сопоставление arraylist переднего конца, поэтому каждый раз, когда пользователь добавляет новый, он просто автоматически добавляет еще один объект Example1 в ArrayList, у вас будет список, который содержит в нем все объекты example1. –
Dileep