Использование GWT У меня есть класс Java:
public class Pojo {
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
Вышеупомянутый класс используется совместно клиентским и серверным кодом.
Из клиентского кода я хотел бы получить динамический доступ к свойству . То есть я хотел бы написать метод со следующей сигнатурой:
public String getProperty(Object o, String propertyName)
Чтобы следующий код работал:
Pojo pojo = new Pojo();
pojo.setName("Joe");
getProperty(pojo, "name"); // this should return "Joe"
Очевидно, что отражение Java отсутствует. И я попробовал следующий метод JSNI:
public static native String getProperty(Object o, String name) /*-{
return o[name];
}-*/;
Но это не работает.
Специальный синтаксис для доступа к объектам Java из JavaScript также не может использоваться, поскольку я хочу, чтобы он был динамическим.
Есть идеи, как я могу это сделать?
Для полноты картины я также хочу иметь возможность динамически настраивать свойство.
РЕДАКТИРОВАТЬ: ответ blwy10 был отличным советом, который помог мне выполнить поиск с помощью " gwt reflection "вместо таких терминов, как" доступ к динамическим свойствам ". Это привело меня к gwt-ent , в котором есть очень элегантное решение для отражения. Я собираюсь попробовать этот, так как он не требует отдельного этапа генерации кода.