0

変数の名前を入力として取り、クラスを検索し、その変数が指す値を出力するメソッドを作成する必要があります。ただし、ご想像のとおり、次のような問題があります。

public String myMethod(String varname) {
    return varname;
}

ご覧のとおり、上記は入力文字列を返すだけです。それ以外の方法でそれを行う方法はありますか?

編集:説明を求める人のために、ここにあります:

次のコードがあるとします。

String foo = "foo"; String bar = "bar";

変数の名前を取り、その値を返すメソッドを作成したいと考えています。したがって、上記の方法を使用して を記述した場合myMethod(foo)、出力は「foo」になります。myMethod(bar)同様に、 「バー」を付けたいと思います。

4

1 に答える 1

4

JavaリフレクションAPIを使用します。例えば:

private String foo = "foo text";
private String bar = "some text";

public String myMethod(String varname) throws Exception {
  Class<?> c = this.getClass();
  Field field = c.getDeclaredField(varname);
  Object fieldValue = field.get(this);
  return fieldValue.toString();
}

// myMethod("foo") returns "foo text"
// myMethod("bar") returns "some text"

デモ

参考文献:

于 2012-09-11T10:23:22.413 に答える