在我看来,这似乎是您的误解
第一行就像在说:“好吧,秋千,我想要你做的invokelater
是someMethod().toString()
”。所以Swing执行它
第二行就像是说:“确定,Swing,我要您执行的invokelater
是方法toString()
返回的对象的方法someMethod()
”。一个someMethod()
是方法,
所以结果对我来说完全合乎逻辑
请记住,在评估函数(在本例中为invokelater
)之前,Java需要评估所有参数。因此,在第一种情况下,Java评估lambda函数(无需执行),在第二种情况下,它遇到方法调用,