是否可以在Java中创建函数列表?
我有一堆函数,没有参数也没有返回类型,并且想把它们放在一个列表中。我尝试使用List<Consumer<Void>>
,但似乎无法将它们放在那里。
答案 0 :(得分:1)
如果这些“函数”是没有参数的void
方法,则可以使用Runnable
:
class MyClass {
void someMethod() { ... }
static void anotherMethod() { ... }
}
MyClass obj = new MyClass();
List<Runnable> list = new ArrayList<>();
// for instance methods
list.add(obj::someMethod);
// for static methods
list.add(MyClass::anotherMethod);
这是有效的,因为Runnable
是functional interface,其run()
方法与您的方法匹配:void
且没有参数。