JDK中是否有标准的功能接口,什么都不带,什么都不返回?我找不到一个.类似于以下内容:
@FunctionalInterface
interface Action {
void execute();
}
Run Code Online (Sandbox Code Playgroud) 这可能听起来像一个奇怪的问题,但有没有办法在Java 8中引用Lambda的标准无操作(即null操作,空模式方法,无操作,无操作方法)方法.
目前,我有一个方法,需要一个,比方说,void foo(Consumer<Object>)我想给它一个无操作,我必须声明:
foo(new Consumer<Object>() {
public void accept(Object o) {
// do nothing
}
}
Run Code Online (Sandbox Code Playgroud)
在哪里我希望能够做到这样的事情:
foo(Object::null)
Run Code Online (Sandbox Code Playgroud)
代替.有类似存在吗?
不确定多参数方法如何工作 - 也许这是Java中lambdas的缺陷.
我可以自己定义,例如:
@FunctionalInterface
interface EmptyEmptyFunction {
void apply();
}
Run Code Online (Sandbox Code Playgroud)
然后按如下方式使用它:
EmptyEmptyFunction m = () -> {System.out.println("Hello World - Java 8!");};
m.apply();
Run Code Online (Sandbox Code Playgroud)
我的问题是:JDK中是否有内置类型
EmptyEmptyFunction,或者我必须自己定义EmptyEmptyFunction
(就像我已经做过的那样)?
这里有许多功能接口
http://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
但我似乎找不到一个
与我的"签名" 完全相同的人EmptyEmptyFunction.