加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如果Java程序员想要传递一个函数,他们在Java 8之前做了什么?

发布时间:2020-12-15 01:06:09 所属栏目:Java 来源:网络整理
导读:请温柔地对待我. 我听说Java 8引入了lambdas.但在此之前,如果你想传递一个函数,比方说,作为一个论点,你做了什么? 我能想到的一种方法是创建一个单一的方法接口,如下所示: public interface ISingleMethodInterface{ bool Really(int n);}public bool Gimme

请温柔地对待我.

我听说Java 8引入了lambdas.但在此之前,如果你想传递一个函数,比方说,作为一个论点,你做了什么?

我能想到的一种方法是创建一个单一的方法接口,如下所示:

public interface ISingleMethodInterface
{
  bool Really(int n);
}

public bool GimmeFunction(ISingleMethodInterface interface,int n)
{
  return interface.Really(n);
}

但这是作为一等公民的功能非常有限的应用,因为:

>除了执行该函数或将该对象传递给另一个方法之外,您无法做很多事情.有了lambdas,你可以创作.对于例如你可以这样否定那个lambda:

public bool GimmeLambdaAndIWillComputeItsInverse(Func

>你不能归还lambdas或他们的衍生物.我的意思是,你只能像这样返回同一个对象:

// I know Java doesn't have Tuples but let's forget that for now
public Tuple GimmeFunction(ISingleMethodInterface interface,int n)
{
  return new Tuple { Item1 = interface,Item2 = n };
}

使用lambdas,您可以返回如下导数:

public Func

那么,如果你需要做这样的事情,你做了什么?

最佳答案
一个简单地传递了功能接口的实例.你对lambdas的这种相对的贬低是有点过时的,因为在Java中,lambda是字面上的功能接口.因此,既然一个是以另一个来实现的,它们既不强于另一个.不同之处在于源可读性如何影响您.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读