1

私はJavaとAndroidの開発に非常に慣れていません。

オブジェクトに XML ドキュメントのデータを入力する必要がある場合があります。XML のノード名の一部はまったく標準化されていないため、キーがノード名で、値が割り当て先の変数である HashMap を作成しました。

PHP では、コードは (基本的に) 次のようになります。

$array = new Array("somenodename" => "firstname", "someothernodename" => "lastname");
$object = new Person();
$object->{$array['somenodename']} = "Whatever the XML node value was";

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;
}

somenode と someothernode が動的であると仮定して、オブジェクトを設定するクラスから:

Person person;
Map personMap = person.getHashMap();
if( personMap.containsKey("somenodename") ){
    person.[personMap.get("somenodename")] = "James";
}
if( personMap.containsKey("someothernodename") ){
    person.[personMap.get("someothernodename")] = "Bond";
}

変数名が...変数であるクラス変数に値を割り当てる方法はありますか?

4

1 に答える 1

2

リフレクションといいます

myMethod(String s)からメソッドを呼び出したいとしますPerson

Person p = new Person();
Class<Person> clazz = p.getClass();
Method m = clazz.getMethod("myMethod", String.class);
m.invoke(p, "my string argument");
于 2013-10-20T15:26:48.873 に答える