Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态访问java对象变量_Java_Android - Fatal编程技术网

动态访问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

我对Java和Android开发非常陌生

我有一个例子,需要用XML文档中的数据填充对象。XML中的一些节点名没有以任何方式标准化,因此我创建了一个HashMap,其中键是节点名,值是需要分配给它的变量

在PHP中,代码看起来像(基本术语):

在Java中,我已经做到了:

从我需要填充的对象:

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");