【发布时间】:2015-07-26 11:46:14
【问题描述】:
Java 8 的 Javadocs 不完整吗?
一些方法 cmets 被省略,方法描述是从基类复制(错误地)(例如 java.util.IntSummaryStatistics toString() 方法,带有注释“从类复制的描述:对象”。
公共字符串 toString()从班级复制的描述:
Object返回对象的字符串表示形式。在 一般来说,
toString方法返回一个字符串 “文字地表示”这个对象。结果应该是简洁的 但内容丰富的表示,易于人们阅读。它 建议所有子类重写此方法。
Object类的toString方法返回一个 由对象所属的类的名称组成的字符串 例如,at-sign 字符“@”和无符号 对象的哈希码的十六进制表示。其他 换句话说,这个方法返回一个等于值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())覆盖:
toString在课堂上Object返回:
对象的字符串表示形式。
实际的toString 方法返回类特定信息,如下所示:
IntSummaryStatistics{count=10, sum=129, min=2, average=12.900000, max=29}
而不是默认继承自Object类,如图here。
【问题讨论】:
-
人们可能会对此争论不休。 (复制的)文档说这个方法返回“一些字符串表示”,并且只详细说明了来自 Object 类的字符串表示(并不是说可能没有为其他类返回其他字符串表示)。在任何情况下,您都应该不依赖任何特定的表示,因为这是一个可能会在以后更改的实现细节。
-
还有:"不过,使用 Collectors.toIntStatistics() 是安全的" 但现在叫
summarizingInt。 -
感谢您提出这个问题。它指出了 JDK 文档中的一些实际错误。
-
致近距离投票者:这是如何基于意见的?问题指出了一个有具体解决方案的实际问题。
-
让我想起了 Big Lebowski 中的“老兄”:“这只是你的意见,伙计。”不是这样。 javadocs应该说什么有一个标准,这个标准显然至少部分错误。 @Stuart_Marks 已经打开了错误,关于这是否是一个意见问题的最终决定将至少部分取决于这些错误的解决方案。