【发布时间】:2015-10-07 21:12:00
【问题描述】:
当属于变量的方法的引用被销毁时会发生什么?
public class Hey{
public double bar;
public Hey(){
bar = 2.0d;
}
public double square(double num){
return Math.pow(num , bar);
}
}
Function<Double, Double> square;
whatsGonnaHappen: {
Hey hey = new Hey();
square = hey::square;
}//is hey still kept around because its method is being referenced?
double ans = square.apply(23d);
【问题讨论】:
-
你试过在 square 之后调用方法吗?为什么会消失?
-
你指的是什么功能接口,顺便说一句?
-
Function接口位于 java.util.function @Stultuske -
如果
Hey实例被垃圾回收,square.apply(23d)将如何工作? -
唯一发生的事情是拒绝编译。您能否提供一个编译并可以提出相同问题的示例?
标签: java generics java-8 functional-interface