Вы можете использовать функциональность GWT Generators, которая позволяет генерировать код на этапе компиляции GWT.
Ваш боб, который вы хотите проанализировать, может расширять класс, у которого есть метод, определенный как
public Object getProperty(String propertyName){}
Давайте назовем этот класс IntrospectionBean
.
Предположим, что ваш бин определен как:
public class MyBean extends IntrospectionBean {
private String prop1;
private String prop2;
}
Генератор GWT будет иметь доступ ко всем полям MyBean и может генерировать метод getProperty(String propertyName)
во время компиляции GWT после итерации всех полей MyBean.
Сгенерированный класс может выглядеть так:
public class MyBean extends IntrospectionBean {
private String prop1;
private String prop2;
public Object getProperty(String propertyName) {
if ("propr1".equals(propertyName)) {
return prop1;
}
if ("propr2".equals(propertyName)) {
return prop2;
}
return null;
}
}
Вы можете просто использовать myBean.getProperty("prop1")
, чтобы получить свойство на основе его имени во время выполнения.
Здесь вы можете найти пример реализации генератора gwt