我们为什么要在类中声明一个接口?

Bhu*_*tel 41 java

我们为什么要在Java中声明一个类中的接口?

例如:

public class GenericModelLinker implements IModelLinker {

  private static final Logger LOG =LoggerFactory.getLogger(GenericModelLinker.class);
  private String joinAsPropertyField;
  private boolean joinAsListEntry;
  private boolean clearList;
  private List<Link> joins;

  //instead of a scalar property
  private String uniqueProperty;

  public interface Link {

    Object getProperty(IAdaptable n);

    void setProperty(IAdaptable n, Object value);

  }
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*378 31

当您想要在对象中收集某些字段以强调概念时,您可以创建外部类,也可以创建内部(称为嵌套(静态)或内部).

如果你想强调这个合作类在原始对象使用之外完全没有意义(没有用)的事实,你可以使它嵌套/内部.

因此,在处理某些层次结构时,您可以描述一个"嵌套" interface,它将由包装类的子类实现.

在JDK中,最重要的例子是Map.Entry内部接口,在Map接口内定义并通过各种方式实现HashMap,LinkedHashMap等等......

当然,Map.Entry需要声明public为了在代码所在的任何地方迭代地图时都可以访问.

  • 合理.谢谢 (3认同)

Dav*_*ave 11

如果接口定义很小并且接口仅由其定义的类的客户端使用,则这是组织代码的好方法.否则,接口应在其自己的文件中定义.


Ale*_*exR 5

这是内部接口。Java 编程语言允许定义内部类和接口。如果您想通过当前外部类的范围限制此类或接口的可见性,这通常很有用。

有些人使用这种机制来创建一种命名空间。恕我直言,这是对语言功能的滥用(在大多数情况下)。