Снова я хотел бы узнать ваше мнение о проблеме дизайна.
У меня есть JavaBean с 15 атрибутами. Для подачи атрибутов у меня есть for loop , который перебирает коллекцию пар ключ-значение (конкретно атрибуты SAML, я отображаю ответ атрибутов на атрибуты принципалов). Я вызываю соответствующий метод setter на основе значения ключа, это:
.../...
for (SAML2AttributeInfo attr : attrs) {
if (attr.getAttributeName().equals("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn")) {
customPrincipal.setUpn(attr.getAttributeValues().iterator().next());
}
.../... so on and so forth
}
Это работает, хорошо, но у меня есть некрасивый кусок кода, 15 операторов if, как выше, выглядят не очень элегантно.
Я думаю об использовании Отражение , то есть разработать уникальный метод set и передать ему имя атрибута и его значение.
Другим вариантом может быть сохранение атрибутов на карте , но я не уверен ...
Есть идеи?
Заранее спасибо,
Луис