考虑下面的代码,
class DemoStatic {
public static Runnable testStatic() {
return () -> {
System.out.println("Run");
};
}
public void runTest () {
Runnable r = DemoStatic::testStatic;
r.run();
}
}
public class MethodReferenceDemo {
public static void main(String[] args) {
DemoStatic demo = new DemoStatic();
demo.runTest();
}
}
run()
的方法Runnable
正在被返回的实例testStatic
本来方法被调用。 并在控制台输出应该是“运行”。
但是这个代码不调用run()
实例的方法r
是越来越打印控制台并没有什么。
可有一个人请说明理由。
和评论,如果我不使用方法参考“::”正确。