动态访问java对象变量
我对Java和Android开发非常陌生 我有一个例子,需要用XML文档中的数据填充对象。XML中的一些节点名没有以任何方式标准化,因此我创建了一个HashMap,其中键是节点名,值是需要分配给它的变量 在PHP中,代码看起来像(基本术语): 在Java中,我已经做到了: 从我需要填充的对象:动态访问java对象变量,java,android,Java,Android,我对Java和Android开发非常陌生 我有一个例子,需要用XML文档中的数据填充对象。XML中的一些节点名没有以任何方式标准化,因此我创建了一个HashMap,其中键是节点名,值是需要分配给它的变量 在PHP中,代码看起来像(基本术语): 在Java中,我已经做到了: 从我需要填充的对象: public String firstname; public String lastname; public static Map getHashMap(){ Map<String, S
public String firstname;
public String lastname;
public static Map getHashMap(){
Map<String, String> map = new HashMap<String, String>();
map.put("somenodename", "firstname");
map.put("someothernodename", "lastname");
return map;
}
在变量名为。。。变量?它被称为
假设您想从Person
调用方法myMethod(字符串s)
:
Person p = new Person();
Class<Person> clazz = p.getClass();
Method m = clazz.getMethod("myMethod", String.class);
m.invoke(p, "my string argument");
Person p=新人();
Class clazz=p.getClass();
方法m=clazz.getMethod(“myMethod”,String.class);
m、 调用(p,“我的字符串参数”);
反射是你的朋友。
Person person;
Map personMap = person.getHashMap();
if( personMap.containsKey("somenodename") ){
person.[personMap.get("somenodename")] = "James";
}
if( personMap.containsKey("someothernodename") ){
person.[personMap.get("someothernodename")] = "Bond";
}
Person p = new Person();
Class<Person> clazz = p.getClass();
Method m = clazz.getMethod("myMethod", String.class);
m.invoke(p, "my string argument");