0

私はオブジェクトヒューマンを持っています:

public class Human {
String name;

public Human(String name){
    this.name = name;
}

}

私のメインクラスには、この人間の「ジョン」のインスタンスがあります。
getVarOfObject() という関数を使用して、John の名前を取得します。

public class Example {

public static Object getVarOfObject(Object obj, Object var){

    return obj.var;

}

public static void main(String[] args) {

    Human john = new Human("John");

    String johnsName = getVarOfObject(john, name);

}

}

john.name と入力するだけでよいことはわかっていますが、私の場合は、これを実行できる関数が必要です。

4

3 に答える 3

2

アクセサー メソッド (getter と setter) を使用しないのはなぜですか?

Human

public String getName() {
    return name;
}

そしてあなたの主な方法で:

Human john = new Human("John");
String johnsName = john.getName();
于 2013-09-02T11:13:20.123 に答える
2

これは反射的にしかできません。

この魔法は、エラー、微妙な問題、例外、パフォーマンスの低下、窒息、溺死、死亡、麻痺、または火災につながる可能性があることに注意してください。

Objectobjはオブジェクトで、Stringfieldはフィールドの名前です。

Class clazz=Human.getClass(); //or for class-independence use `obj.getClass()`.
Field fd=clazz.getField(name);
fd.get(obj);
于 2013-09-02T11:09:21.727 に答える