如何存储void方法的arraylist

时间:2013-10-23 20:32:28

标签: java arrays arraylist void

是否可以在arrayList中存储void类型方法,或者只能存储具有返回值的方法?我想调用最多15种方法中的任何一种,而不是写:

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

等...

当您使用try / catch和更多行代码(每个代码重复一遍)时,如果您可以这样做,那将更加简洁:

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

然而,我的方法只是“做东西”,而不是返回一个值,所以如果方法本身不能存储在数组中,那么在其他地方它们可以存储在一起并用for循环提取或仅使用“var” “整数?

3 个答案:

答案 0 :(得分:0)

你所要求的是由

准确给出的
java.util.ArrayList<java.lang.reflect.Method>

但在我看来你应该使用switch语句。

答案 1 :(得分:0)

对于像我一样在6年后来看此帖子的任何人,我建议您让ArrayList返回""的字符串。如果不使用该值,则无论该值是否存在都无所谓,但您需要它使编译器满意。

答案 2 :(得分:-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实例填充对象数组。