考虑下面的代码,
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
控制台中也没有打印任何内容。
有人可以解释一下原因。
如果我没有正确使用方法参考“::”并发表评论。