-2

void 型のメソッドを arrayList に格納することは可能ですか、それとも戻り値を持つメソッドのみを格納できますか? 次のように書くのではなく、最大 15 個のメソッドのいずれかを呼び出したいと思います。

if(var == 1){
    method1()
}else if(var ==2){
    method2();
}

等...

try/catch とさらに数行のコード (それぞれに対して繰り返す) で囲むまでに、次のことができれば、はるかにきれいになります。

arrayList.get(var); //or something similar

ただし、私のメソッドは値を返すのではなく「何かを行う」だけなので、メソッド自体を配列に格納できない場合は、一緒に格納して for ループまたは「var」整数を使用するだけで抽出できますか?

4

3 に答える 3

0

あなたが求めているものは、正確に

java.util.ArrayList<java.lang.reflect.Method>

しかし、switchステートメントを使用する必要があるようです。

于 2013-10-23T21:46:29.833 に答える
0

私のように 6 年後にこの投稿を見に来た人にはArrayList、 の文字列を返してもらうことをお勧めします""。値が使用されていない場合、それが存在するかどうかは問題ではありませんが、コンパイラーを満足させるために必要になります。

于 2020-02-12T14:49:44.130 に答える
-1

メソッド参照を Java に格納することはできません。

ただし、メソッドを簡単に呼び出すことができる定義済みのインターフェイスを持つクラスのオブジェクトを作成できます。

public interface VoidMethod {
  public void callMethod();
}

// ...

public class Method1 implements VoidMethod {
  public void callMethod() {
    // your stuff here
  }
}

// ...

public class MethodN implements VoidMethod {
  public void callMethod() {
    // your stuff here
  }
}

次に、オブジェクト配列に VoidMethod のインスタンスを設定できます。

于 2013-10-23T20:41:18.840 に答える