使用GWT我有一个Java类:
public class Pojo {
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
Run Code Online (Sandbox Code Playgroud)
上述类在客户端和服务器端代码之间共享.
从客户端代码我想动态访问该属性.也就是说,我想用以下签名编写一个方法:
public String getProperty(Object o, String propertyName)
Run Code Online (Sandbox Code Playgroud)
这样以下代码可以工作:
Pojo pojo = new Pojo();
pojo.setName("Joe");
getProperty(pojo, "name"); // this should return "Joe"
Run Code Online (Sandbox Code Playgroud)
Java反射显然已经出来了.我尝试了以下JSNI方法:
public static native String getProperty(Object o, String name) /*-{
return o[name];
}-*/;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
无法使用从JavaScript访问Java对象的特殊语法,因为我希望它是动态的.
有关如何做到这一点的任何想法?
为了完整起见,我还希望能够动态设置属性.
编辑:blwy10的答案是一个很好的提示让我搜索使用"gwt反射",而不是像"动态属性访问"这样的术语.这引出了我的gwt-ent,它具有非常优雅的反射解决方案.我将尝试这个,因为它不需要单独的代码生成步骤.
| 归档时间: |
|
| 查看次数: |
4058 次 |
| 最近记录: |