在Java 8的java.util.function
程序包中,我们有:
- 功能:接受一个参数,产生一个结果。
- 消费者:采取一种论点,什么都不做。
- 供应商:不带任何争议,得出一个结果。
- ...:其他处理原语,2个参数等的情况...
但是我需要处理“ 不带参数,不产生任何东西 ”的情况。
在中没有任何内容java.util.functionnal
。
因此,问题是:
“ 不带参数不返回任何值的函数 ”的名称是什么?
在Java 8中,其定义为:
@FunctionalInterface
public interface InsertANameHere {
void execute();
}
执行程序已经存在并具有另一个用途:“ 一个对象,该对象执行已提交的可运行任务 ”。签名不匹配(execute(Runnable):void
),甚至都不是一个功能接口。
Runnable存在,但它与线程上下文紧密关联:
- 这个包
java.lang
不是java.util.function
。 - javadoc指出:“ Runnable接口应该由实例打算由线程执行的任何类实现 ”。
- 名称“ Runnable”建议在线程内运行一些代码。
Runnable
已经过时了,因为Runnable也被Thread
(Executor
例如)其他类使用。
Runnable
s只能是.run()
被Thread
秒。实际上,它们非常准确地用于问题中所述的目的
java.util.function
包中什么都找不到的原因。