Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java8中的方法返回Lambda?_Java_Lambda_Java 8 - Fatal编程技术网

从Java8中的方法返回Lambda?

从Java8中的方法返回Lambda?,java,lambda,java-8,Java,Lambda,Java 8,我刚刚开始使用Java8,我想知道是否有一种方法可以编写一个返回函数的方法 现在我有如下方法: Function<Integer, String> getMyFunction() { return new Function<Integer, String>() { @Override public String apply(Integer integer) { return "Hello, world!" } } } 函数getMy

我刚刚开始使用Java8,我想知道是否有一种方法可以编写一个返回
函数的方法

现在我有如下方法:

Function<Integer, String> getMyFunction() {
  return new Function<Integer, String>() {
    @Override public String apply(Integer integer) {
      return "Hello, world!"
    }
  } 
}
函数getMyFunction(){ 返回新函数(){ @覆盖公共字符串应用(整数){ 返回“你好,世界!” } } } 有没有一种方法可以用Java8更简洁地编写?我本希望这能奏效,但事实并非如此:

Function<Integer, String> getMyFunction() {
  return (it) -> { return "Hello, world: " + it } 
}
函数getMyFunction(){ return(it)->{return“你好,世界:+it} }
去掉函数定义中的返回语句:

Function<Integer, String> getMyFunction() {
    return (it) -> "Hello, world: " + it;
}
函数getMyFunction(){ return(it)->“你好,世界:”+it; }
您缺少分号:

return (it) -> { return "Hello, world: " + it; };
尽管如前所述,它可以缩短为:

return it -> "Hello, world: " + it;

你可以这样写:

Function<Integer, String> function = n -> "Hello, world " + n;
Function=n->“你好,世界”+n;

因此,99%的案例的答案由@assylias给出


您缺少分号:

return (it) -> { return "Hello, world: " + it; };
return(it)->{return“你好,世界:+it;”;尽管如此
可缩短为:

return it -> "Hello, world: " + it;
返回它->你好,世界:+it

然而,我认为如果您想将lambda分配给一个变量(稍后使用),那么添加它是值得的。 您可以通过键入以下内容来执行此操作:

Callable<YourClass> findIt = () -> returnInstanceOfYourClass();
如果
Wrapp.withTransaction()
方法接受相同类型的可调用参数,事情甚至可以变得更简单。
(我将其用于JPA atm)

我想指出,在这种情况下,使用内置的可能更合适:

IntFunction<String> getMyFunction() {
    return it -> "Hello, world: " + it;
}
IntFunction getMyFunction(){
返回它->你好,世界:+它;
}
IntFunction
是其中的一部分,它定义了一系列良好的接口,主要与Java原语相关