Mat*_*nry 6 java lambda interface java-8
期待迁移到Java 8,我试图以有利于使用lambda的方式编写代码.
我需要一个带有单个方法的函数接口,该方法接受某种类型的一个参数T
并返回void
.这是签名java.util.function.Consumer
的accept()
方法,但我当然不能使用呢.
我可以使用标准Java 7(最好是Java 6)API中的另一个接口吗?我知道我可以创造自己的,但尤其是.在将此代码移植到Java 8之前,如果我可以使用标准Java 6/7 API中已经熟悉的标准接口,则可读性更好.
到目前为止我发现的最接近的是com.google.common.base.Function<T,Void>
,但是(a)它不是标准Java API的一部分,(b)它的文档说"功能的实例通常被认为是引用透明的 - 没有副作用",这是与我的预期用途相反(具有Void
返回类型).
Cha*_*lie 10
您可以创建自己的界面:
public interface Invokable <T>{
public void invoke(T param);
}
Run Code Online (Sandbox Code Playgroud)
或者,如建议的那样,您可以使用与Java 8相同的接口Consumer
.源代码包含在Java 8 JDK Early Access下载中,此处删除了所有注释和注释:
public interface Consumer<T>{
void accept(T t)
default Consumer<T> andThen(Consumer<? super T> after)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2658 次 |
最近记录: |