1

私は Java が初めてで、カスタム オブジェクトのプロパティの値を動的に設定する方法を理解しようとしています。XML ファイル内の要素をループする XML パーサーを使用していますが、文字列を一時的な値に設定しようとしています。

public MyObject tempObj; //gets instantiated before child elements
public String tempValue; //gets set before each loop

public void stepThroughChildElement(string elementName) {
    switch (elementName) {
        case "Id":
            tempObj.Id = Integer.parseInt(tempValue);
            break;
        case "Version":
            tempObj.Version = Float.parseFloat(tempValue);
            break;
        default:
            //something like this   
            //tempObj.setProperty(elementName, tempValue);
            //or
            //tempObj[elementName] = tempValue;
            break;
    }

}

JavaScript では、2 番目の例Object["property"] = value;をそのまま使用しますが、明らかに Java はそのようには機能しません。このPropertiesオブジェクトも見つけましたが、関連性があるかどうかわかりません。

4

3 に答える 3

0

Java は静的に型付けされているため、そのようなプロパティを追加することはできません。オブジェクトに Map<String, String> 他のプロパティを与える必要があります。

オブジェクトに既にプロパティが定義されている場合は、それぞれをハードコーディングするか、java.reflection を使用してより動的に行うことができます。コード アシストを使用して、tempObj.getClass() を呼び出した後に使用できるすべてのメソッドを調べます。フィールドに直接アクセスできる場合もあれば、セッター メソッドを検索して呼び出す必要がある場合もあります。

于 2013-09-16T13:13:05.290 に答える