我在 Eclipse 应用程序中有以下代码:
import org.eclipse.swt.widgets.Listener;
public class X {
public void test() {
Listener eclipseListener = new Listener() {
public void handleEvent(Event evt) {
System.err.println("starting");
Y.externalMethod();
System.err.println("finished");
}
}
}
public class Y {
public static void externalMethod() {
System.err.println("in class Y");
}
}
当我在类 X 中运行方法测试时,我得到以下输出:
开始
我不明白为什么 externalMethod 没有在 Y 类中运行以及为什么控制没有返回到 X 类(它从不打印“完成”或“在 Y 类中”)。
关于为什么 externalMethod 不运行的任何想法?匿名内部类是否不允许在其类外调用静态方法?如果是这样,为什么这段代码会编译?