Как мне получить динамический доступ к свойству объекта Java в GWT?

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

6
задан David Sykes 26 August 2010 в 05:55
поделиться