为什么在Java中使用静态嵌套接口?

为什么在Java中使用静态嵌套接口?,第1张

为什么在Java中使用静态嵌套接口

上例中的static关键字是多余的(嵌套接口自动为“ static”),可以删除而不会影响语义;我建议将其删除。接口方法上的“公共”和接口字段上的“公共最终”也是如此-修饰符是多余的,只会给源代码增加混乱。

无论哪种方式,开发人员都只是声明一个名为Foo.Bar的接口。与封闭类没有进一步的关联,除了无法访问Foo的代码也将无法访问Foo.Bar。(从源代码开始,即使Foo是程序包私有的,字节码或反射也可以访问Foo.Bar!)

如果希望仅在外部类中使用嵌套接口,则可以通过这种方式创建嵌套接口,这样您就不必创建新的顶级名称。例如:

public class Foo {    public interface Bar {        void callback();    }    public static void registerCallback(Bar bar) {...}}// ...elsewhere...Foo.registerCallback(new Foo.Bar() {    public void callback() {...}});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5017561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存