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

前端之家收集整理的这篇文章主要介绍了如果Java程序员想要传递一个函数,他们在Java 8之前做了什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

请温柔地对待我.

我听说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是字面上的功能接口.因此,既然一个是以另一个来实现的,它们既不强于另一个.不同之处在于源可读性如何影响您.
原文链接:https://www.f2er.com/java/437323.html

猜你在找的Java相关文章