首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一个Java-8之前的功能接口,这是java.util.function.Consumer<T>的替代品之一?

是否有一个Java-8之前的功能接口,这是java.util.function.Consumer<T>的替代品之一?
EN

Stack Overflow用户
提问于 2014-03-03 21:35:32
回答 2查看 3.4K关注 0票数 7

为了准备迁移到Java 8,我试图以一种有利于使用lambdas的方式编写我的代码。

我需要一个带有单个方法的函数接口,该方法接受T类型的一个参数并返回void。这是java.util.function.Consumeraccept()方法的签名,但我当然还不能使用。

在标准的Java 7(最好是Java 6) API中,是否有另一个我可以使用的接口?我知道我可以创造自己的,但尤其是。在将这段代码移植到Java 8之前,如果我能够使用标准Java6/7 API中已经熟悉的标准接口,那么可读性会更好。

到目前为止,我发现的最接近的东西是com.google.common.base.Function,但是(a)它不是标准Java的一部分,(b)它的文档说“函数的实例一般都是引用透明的--没有副作用”,这与我的预期用法(使用Void返回类型)是相反的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-03 21:39:44

您可以创建自己的界面:

代码语言:javascript
运行
复制
public interface Invokable <T>{
    public void invoke(T param);
}

或者,正如建议的那样,您可以使用与Java8 Consumer相同的接口。源代码包含在Java 8 JDK早期访问下载中,这里删除了所有注释和注释:

代码语言:javascript
运行
复制
public interface Consumer<T>{
    void accept(T t)
    default Consumer<T> andThen(Consumer<? super T> after)
}
票数 12
EN

Stack Overflow用户

发布于 2014-03-04 09:03:42

哈,找到一个!查看JavaEE 7 API:接口javax.websocket.MessageHandler.Whole应该是您要寻找的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22157957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档