为什么Java接口在文档中有描述

为什么Java接口在文档中有描述,java,syntax,interface,Java,Syntax,Interface,我知道接口内部只有方法声明,只有当某些类实现接口时才提供方法声明的实现(我不是说默认方法或函数接口) 问题是:为什么Java文档、教程、书籍或其他信息源会提供接口方法的描述?例如,提供了列表接口方法的完整描述,但是如果它只是一个接口,那么这些方法不应该提供任何功能,那么这些文档中描述了什么呢?Joshua Bloch(有效Java)-如果要使用API,就必须对其进行记录 除非您记录您的接口方法,否则其他人(API用户)将不知道- 它做什么(而不是如何做) 它的先决条件 它的后条件 它的副作用 它

我知道接口内部只有方法声明,只有当某些类实现接口时才提供方法声明的实现(我不是说默认方法或函数接口)

问题是:为什么Java文档、教程、书籍或其他信息源会提供接口方法的描述?例如,提供了
列表
接口方法的完整描述,但是如果它只是一个接口,那么这些方法不应该提供任何功能,那么这些文档中描述了什么呢?

Joshua Bloch(有效Java)-如果要使用API,就必须对其进行记录 除非您记录您的接口方法,否则其他人(API用户)将不知道-

  • 它做什么(而不是如何做)
  • 它的先决条件
  • 它的后条件
  • 它的副作用
  • 它的线程安全性
  • 有效Java——第44项规定:

    方法的文档注释应该简洁地描述合同 在方法和它的客户机之间


    记录接口方法还有一个额外的优势:继承使用
    {@inheritardoc}

    有效Java——第44项规定:

    Javadoc能够“继承”方法注释。如果一个API 元素没有doc注释,Javadoc搜索 具体适用的文档注释,优先考虑接口而不是 超级类。有关搜索算法的详细信息,请参见 Javadoc参考指南[Javadoc ref]。您还可以继承的一部分 使用{@inheritDoc}标记的超类型的文档注释。这就是说,, 除此之外,这些类还可以重用来自的文档注释 它们实现的接口,而不是复制这些注释。这 设施有可能减少维护的负担 多组几乎相同的文档注释

    Joshua Bloch(高效Java)-如果要使API可用,必须对其进行文档化 除非您记录您的接口方法,否则其他人(API用户)将不知道-

  • 它做什么(而不是如何做)
  • 它的先决条件
  • 它的后条件
  • 它的副作用
  • 它的线程安全性
  • 有效Java——第44项规定:

    方法的文档注释应该简洁地描述合同 在方法和它的客户机之间


    记录接口方法还有一个额外的优势:继承使用
    {@inheritardoc}

    有效Java——第44项规定:

    Javadoc能够“继承”方法注释。如果一个API 元素没有doc注释,Javadoc搜索 具体适用的文档注释,优先考虑接口而不是 超级类。有关搜索算法的详细信息,请参见 Javadoc参考指南[Javadoc ref]。您还可以继承的一部分 使用{@inheritDoc}标记的超类型的文档注释。这就是说,, 除此之外,这些类还可以重用来自的文档注释 它们实现的接口,而不是复制这些注释。这 设施有可能减少维护的负担 多组几乎相同的文档注释


    描述是接口对象及其方法的目标,如果没有描述,则在实现此接口对象时,您将不知道如何在方法中编写

    例如,方法void clear()是什么

    选项1)删除所有对象

    选项2)删除最后一次插入列表

    选项3)删除重复的对象

    等等


    当然,这是一个简单的示例,您可以猜测clear()的目标是选项1,但有时它要复杂得多。

    描述是接口对象及其方法的目标,如果没有描述,您将不知道在实现此接口对象时如何在方法中编写

    例如,方法void clear()是什么

    选项1)删除所有对象

    选项2)删除最后一次插入列表

    选项3)删除重复的对象

    等等


    当然,这是一个简单的示例,您可以猜到clear()的目标是选项1,但有时它要复杂得多。

    因为您必须明确指定接口背后的动机以及调用方和实现方的契约

    也就是说,接口中的注释面向两个受众:调用者和实现者。双方都应该意识到他们可以期待什么,他们应该如何表现


    显然,就像普通类一样,接口中的文档应该遵守标准JavaDoc的规则。

    因为您必须清楚地指定接口背后的动机以及调用方和实现方的契约

    也就是说,接口中的注释面向两个受众:调用者和实现者。双方都应该意识到他们可以期待什么,他们应该如何表现


    显然,就像普通类一样,接口中的文档应该遵循标准JavaDoc的规则。

    简单。因为,的接口需要javadoc,为实现这些接口的Java开发人员提供信息。因为,我们需要javadoc作为接口,以便向实现这些接口的Java开发人员提供信息。

    如果没有文档,如果我有一个
    列表
    ,我怎么知道会出现什么行为呢?你的意思是:如果实现了该方法,该怎么办呢?嗯,我的想法完全相同,但它看起来有点过于抽象,因为您已经知道接口用于从一个类到另一个类的通信。因此,为两个类之间的通信创建了接口,这两个类的通信方法已经在这个唯一的接口中定义。这意味着如果接口定义了某种方法