What happens when the reference of a method which belongs to a variable is destroyed?
public class Hey{
public double bar;
public Hey(){
bar
Your method reference is essentially equivalent to doing this:
Hey hey = new Hey();
Function square = new DoubleDoubleFunction(hey);
where the class DoubleDoubleFunction
is defined like this
class DoubleDoubleFunction implements Function {
private final Hey hey;
public DoubleDoubleFunction(Hey hey) {
this.hey = hey;
}
@Override
public Double apply(Double num) {
return hey.square(num);
}
}
In other words, square
holds a reference to the Hey
.
I don't know about eclipse, but with IntelliJ you can easily translate method references and lambdas into anonymous / static nested / inner classes to see what's going on. I find this a very instructive thing to do.