如何防止接口扩展

时间:2010-08-21 15:33:43

标签: java oop interface

在Java中,有没有办法阻止扩展接口。

由于final无法添加到interface,因此我很想知道是否有办法,以防止扩展接口。

3 个答案:

答案 0 :(得分:3)

这里的问题是一个概念问题。接口意味着扩展,因为它们不能按原样使用。

您可以做的是将界面放在包中并为其提供默认可见性。只有那个包中的类才能实现该接口。

但是使用该解决方案,您也无法在该软件包之外使用该接口,因此这不是真正的解决方案。

答案 1 :(得分:2)

无法阻止扩展界面。

您可以检测是否有人在运行时使用反射扩展了您的界面。

答案 2 :(得分:0)

这与先前提出的问题非常相似 - final interface in java

我给了两个答案。

  1. 是的,通过byte code engineering。生成的界面无法扩展,但没有实用价值
  2. 是的,annotations是其他接口无法扩展的接口。
  3. 此外,您可以将接口放在类中,为其提供私有访问修饰符,并确保该类文件中没有任何接口扩展它。