0

次のコードを使用して、名前でクラス属性にアクセスできます。

MyClass.class.getDeclaredField("myAtt");

逆にする関数を作成することは可能ですか?つまり、属性をその名前に変換する関数ですか?

編集:これをより明確にするために、この編集を追加して
います:次のクラスを検討してください:

class MyClass {
    Integer myAttribute;
}

myAttribute(それ自体、またはそれへの参照。idk!)を受け入れ、"myAttribute"文字列を返す関数を探しています。

4

3 に答える 3

3

試すjava.lang.reflect.Field.getName();

于 2012-10-17T12:22:46.690 に答える
2

あなたはField#getName方法を使うことができます:-

Field[] fields = MyClass.class.getDeclaredFields();

for (Field field: fields) {
    System.out.println(field.getName());
}

PSuppercase :-クラスには文字で始まる名前を付ける必要があります。

更新:-わかりました。属性の名前がわかっている場合:- private String attrName;、対応するフィールドを取得できます:-

Field field = MyClass.class.getDeclaredField("attrName");

// Then do this. Which is meaningless. But I don't know why you want to do this
// Your fieldName will contain "attrName" which you know already
String fieldName = field.getName();

ただし、上記のフィールドから名前を取得しても意味がありません。これだけを探していたらびっくりします。しかし、あなたはあなたの質問をより明確にすることができます。

于 2012-10-17T12:23:08.463 に答える