-5 java lambda expression java-8
import java.util.function.Function;
public class LambdaExpression {
@SuppressWarnings("rawtypes")
public static Function create(int addTo){
int n = 1;
Function<Integer, Integer> f = addT -> addTo + n;
return f;
}
public static void main(String[] args){
System.out.println(LambdaExpression.create(5));
}
}
Run Code Online (Sandbox Code Playgroud)
在运行时给我这个错误:
LambdaExpression $$ LAMBDA $424058530分之1@ 1c20c684
如果要创建一个向其输入添加1的函数,创建该函数的方法不需要参数......但是您需要调用该函数才能执行它.我怀疑你想要:
import java.util.function.Function;
public class LambdaExpression {
public static Function<Integer, Integer> create() {
Function<Integer, Integer> f = x -> x + 1;
return f;
}
public static void main(String[] args) {
Function<Integer, Integer> f = create();
System.out.println(f.apply(5)); // 6
}
}
Run Code Online (Sandbox Code Playgroud)
如果你真的想要一个函数来添加你传递给create方法的任何东西(而不是总是加1)这很容易:
import java.util.function.Function;
public class LambdaExpression {
public static Function<Integer, Integer> create(int addTo) {
Function<Integer, Integer> f = x -> x + addTo;
return f;
}
public static void main(String[] args) {
Function<Integer, Integer> f = create(3);
System.out.println(f.apply(5)); // 8
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |