是否可以在arrayList中存储void类型方法,或者只能存储具有返回值的方法?我想调用最多15种方法中的任何一种,而不是写:
if(var == 1){
method1()
}else if(var ==2){
method2();
}
等...
当您使用try / catch和更多行代码(每个代码重复一遍)时,如果您可以这样做,那将更加简洁:
arrayList.get(var); //or something similar
然而,我的方法只是“做东西”,而不是返回一个值,所以如果方法本身不能存储在数组中,那么在其他地方它们可以存储在一起并用for循环提取或仅使用“var” “整数?
答案 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实例填充对象数组。