Используя 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 отражение "вместо того, чтобы с терминами, как" Это идеальный кандидат на сервис-ориентированную архитектуру SOA? Я слышал, что сервисы SOA должны быть без сохранения состояния (или это только сервисы RESTful?). Я также слышал, что нецелесообразно передавать один сервис на другой, потому что это увеличивает скрытую сложность, и что вы должны были что-то делать. чтобы сделать эту ситуацию лучше («оркестровка»?). Вышеперечисленные услуги представляются модульными и могут использоваться повторно. Например, будет множество камер, различные типы алгоритмов обнаружения и аномалий транспортных средств, распределенные базы данных и множество клиентов. Мне нужно будет иметь возможность обрабатывать события: например, если я захочу зарегистрироваться в сервисе и получать уведомления всякий раз, когда большой грузовик проезжает эту точку.
Если это не идеально реализовано SOA, то где еще я должен искать. Если это идеально для SOA, то с чего мне начать при разработке этого? (И я начинаю в основном с прочтения страницы SOA Википедии.) Есть ли здесь какие-нибудь хорошие примеры из практики?