从Java8中的方法返回Lambda?
我刚刚开始使用Java8,我想知道是否有一种方法可以编写一个返回从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
函数的方法
现在我有如下方法:
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原语相关