Raf*_*l T 9 java implementation interface inner-classes
我刚刚遇到一种行为,我首先认为它是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迫使我"浪费"一个成员,如果它可以通过让我自己实现它来简单地保存它?我非常清楚将此接口放在自己的文件中的"解决方法",但出于好奇:有没有理由说这不起作用?
使用此代码
public class Foo implements Callback{
public static interface Callback{
    public void onAction()
}
public void onAction(){//some implementation}
}
是什么Callback?编译器(btw不同于Eclipse)不知道是什么Callback.
您Callback在使用后定义了界面.