2014-10-05 113 views
0

我看到在javadoc中,接口方法的可访问性说明符没有明确指定。接口方法的可访问性说明符vs javadoc中的类方法

例如对于接口Iterator或Comparable,这些方法都没有指定其可访问性修饰符。

但是对于例如类ArrayList方法指定了其可访问性修饰符。为什么这样 ?

回答

1

对于接口,所有的方法是publicabstract根据java language specification。因此,如果上述规则适用于所有接口方法,则无需提及访问说明符。

但是类可以有不同的方法风格,因此每个方法都提到访问说明符。

1

这是因为,接口方法的默认访问说明符是公共的。但是,对于类来说它是私有包 - 这对于API类不会有太大用处。

+1

[This other SO question](http://stackoverflow.com/questions/161633/should-methods-in-a-java-interface-be-declared-with-or-without-a-public-access- m)讨论为什么不建议为接口方法指定公共访问说明符。 – 2014-10-05 06:32:48

1

在一个界面中,所有方法含蓄地都有权访问public。一个非新手Java程序员会知道这一点,并理解这一点,并可能会认为它是冗余包括一个public接口javadocs中的方法。

除此之外,以这种方式格式化javadoc的唯一解释是这是Oracle/Sun工程师决定实现javadoc生成器的方式。 (他们必须决定包含或省略多余的修饰符,并且他们选择忽略它们)。坦率地说,它们决定实现这一点并不重要。