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);
將f1優化成DoubleToIntFunction(有點像f2)。java編譯器是否將Function <Double,Integer>轉換爲DoubleToIntFunction?
「優化」是什麼意思? 'Function'和'DoubleToIntFunction'都是接口 - 沒有什麼可以優化的。 –
我的意思是,那裏會出現autofoxing for'f1.apply(d);'(double to Double)還是編譯器會隱式地將f1的類型轉換爲DoubleFunction或DoubleToIntFunction? –
AmeyaKetkar
編譯器('javac')將不會執行任何操作,JIT可能會將它們編譯到相同的本機代碼中,具體取決於使用情況。 – Kayaman