我如何存储无效方法的数组列表

问题描述 投票:-2回答:3

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

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

等...

在您尝试/捕获和多行代码(每行重复一遍的时候),如果可以的话,会变得更加整洁:

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

但是我的方法只是“做些事情”而不是返回值,因此,如果方法本身无法存储在数组中,则可以将它们存储在一起,并通过for循环或仅使用“ var”将其提取出来。整数?

java arrays arraylist void
3个回答
-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的实例填充对象数组。


0
投票

您要的是精确给出的

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

但是在我看来,您应该使用switch语句。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.