【发布时间】:2018-09-17 06:10:12
【问题描述】:
这些代码行之间有区别吗?最好用什么? 谢谢
public static void main( String[] args ){
SwingUtilities.invokeLater( () -> component.method() ); }
对
public static void main( String[] args ) {
SwingUtilities.invokeLater( new Runnable() {
public void run(){
component.method();
}} );
}
或
public static void main( String[] args ) {
SwingUtilities.invokeLater( new Runnable() {
public void run(){
component::method();
}} );
}
【问题讨论】:
-
第三个不会编译。
-
有区别,是的。但是最后一个不会编译(应该是
invokeLater(component::method);) -
前两个读这个:alvinalexander.com/java/… 最后一个读这个:stackoverflow.com/questions/20001427/…
-
在 lambda 函数内部的方法调用和直接方法引用之间的唯一区别是 StackTrace 中多了一行。