Используя 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 отражение» вместо таких слов, как «динамический доступ к свойству».Это привело меня к gwt-ent , который имеет очень элегантное решение для отражения.Я собираюсь попробовать это, так как он не требует отдельного шага генерации кода.