メソッドが a を取得して変数に変換することは可能string
ですstring
か? そのような:
x1 = new X();
x2 = new X();
x3 = new X();
public void doThis(String y)
{
y.doSomething();
}
y
x1、x2、または x3 はどこですか? したがって、メソッドは実際には次のとおりx1.doSomething()
です。など?
いいえ、Java でそれを行う方法はありません。それを行いたいということは、何らかのコレクションがおそらく本当に必要であることを示しています。
連続した整数 (理想的には 0 から始まる) で識別したい値のコレクションがある場合は、配列またはList<T>
. 本当に文字列で識別したい値のコレクションがある場合 (たとえば、x
andy
ではなく1
and2
を使用するため)、Map<String, Foo>
(Foo
はマップ先の値の型) を使用します。
文字列から変数を作成することはできませんが、文字列から動的にクラスインスタンスを作成することはできます。例えば
NewClassInterface x;
public void doThis(String y)
{
x= Class.forName(y).newInstance();
x.doSomething();
}
明らかに、あなたはすでにどこかにNewClassの実装を持っている必要があります。
この助けを願っています
public void doThis(Object y)
{
y.doSomething();
}
これはあなたがすべきことです。または、if-else または case ステートメントを使用して、呼び出すメソッドを決定することもできます。