Ame*_*kar 0 java java-8 functional-interface javacompiler
Function<Double,Integer> f1=(d)-> {
if(d>5)
return 0;
return 1;
};
DoubleToIntFunction f2=(d)-> {
if(d>5)
return 1;
return 0;
};
double d=5.0;
f1.apply(d);
f2.applyAsInt(d);
Run Code Online (Sandbox Code Playgroud)
将f1优化为DoubleToIntFunction(有些像f2).
我不知道它怎么可能,上面的lambda允许空值,而下面的lambda不允许空值.编译器必须进行大量的静态代码分析,以查看是否可以将null传递给Function以优化它.
f1.apply(null); //works!
f2.applyAsInt(null); //won't compile!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |