您可以在GWT客户端中使用Java Reflection api吗?
2022-09-01 20:41:08
是否可以在 GWT 客户端使用 java 反射 API?我想使用反射来查找 Javabean 上属性的值。这可能吗?
是否可以在 GWT 客户端使用 java 反射 API?我想使用反射来查找 Javabean 上属性的值。这可能吗?
您可以使用 GWT 生成器功能,该功能允许您在 GWT 编译阶段生成代码。
要内省的 Bean 可以扩展一个类,该类具有定义为
public Object getProperty(String propertyName){}
我们称之为类 。IntrospectionBean
假设您将bean定义为:
public class MyBean extends IntrospectionBean {
private String prop1;
private String prop2;
}
GWT生成器将有权访问MyBean的所有字段,并且可以在GWT编译时迭代MyBean的所有字段后生成该方法。getProperty(String propertyName)
生成的类可能如下所示:
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生成器的示例
我去过那里,解决方案确实是使用延迟绑定和生成器。您可以在此处看到生成器的使用,以克服GWT客户端中反射的不足:
http://jpereira.eu/2011/01/30/wheres-my-java-reflection/
希望它有帮助。