Существует интересное решение, которое может помочь вам, если вы отображаете структуры данных, которые имеют много слегка отличающихся вариантов. Например, если вы моделируете структуры бизнес-заказов для разных бизнес-случаев и вариантов продукта, а для разных вариантов требуются разные комбинации одних и тех же атрибутов, таких как адреса, идентификаторы счетов, информация о конфигурации для продуктов и т. Д.
Таким образом, у вас есть много структурно похожих бинов, которые содержат разные подмножества ряда атрибутов. Если вы не хотите писать код для каждого отдельного варианта, вы можете ввести Java-интерфейс, который имеет все атрибуты, встречающиеся в этих bean-компонентах, и использовать java.lang.reflect.Proxy для создания экземпляров прокси для bean-компонент, который вы хотите отобразить, и который возвращает null для получателей, фактический bean-компонент не имеет / выдает исключение, если для фактического bean-компонента вызывается несуществующий установщик. В некотором смысле, вы вводите интерфейс в те bean-компоненты, которые имеют больше методов, чем сам bean-компонент.