我刚刚遇到了一个行为,我首先认为这是 Eclipse 中的一个错误。考虑这个简单的类:
public class Foo {
public static interface Callback {
public void onAction();
}
}
这是完全有效的。然而,这不是:
public class Foo implements Callback {
public static interface Callback {
public void onAction();
}
public void onAction() { /*some implementation*/ }
}
但这也是有效的:
public class Foo {
public static interface Callback {
public void onAction();
}
private final Callback mCallback = new Callback() {
public void onAction() { /*some implementation*/ }
};
}
如果Java可以通过让我自己实现它来简单地保存它,为什么Java会强迫我为它“浪费”一个成员?我很清楚将这个接口放在自己的文件中的“解决方法”,但出于好奇:这有什么原因不起作用?