【发布时间】:2010-08-21 15:33:42
【问题描述】:
在 Java 中,有没有办法防止扩展接口。
由于 final 无法添加到 interface ,我很想知道是否有办法防止扩展接口。
【问题讨论】:
-
这样做的动机是什么?如果您了解接口是什么以及它们的用途,我认为在语义上没有任何收获。
-
如果你不创建接口,除非其他人创建它,否则它不能扩展,所以告诉 no1。
在 Java 中,有没有办法防止扩展接口。
由于 final 无法添加到 interface ,我很想知道是否有办法防止扩展接口。
【问题讨论】:
这里的问题是一个概念问题。接口旨在扩展,因为它们不能按原样使用。
您可以做的是将接口放入包中并为其提供默认可见性。这样,只有该包中的类才能实现该接口。
但是使用该解决方案,您也无法使用该包之外的接口,因此它不是真正的解决方案。
【讨论】:
没有办法阻止扩展接口。
您可以检测是否有人在运行时使用反射扩展了您的界面。
【讨论】:
这与之前提出的问题非常相似——final interface in java。
我给出了两个答案。
此外,您可以将接口放在类中,给它私有访问修饰符,并确保该类文件中没有接口扩展它。
【讨论】: