【问题标题】:Why does the Oracle JDK Javadoc not include the strict floating point modifier?为什么 Oracle JDK Javadoc 不包含严格的浮点修饰符?
【发布时间】:2021-01-31 13:26:28
【问题描述】:

如果我查看 NetBeans Javadoc 窗口中的 StrictMath.toRadians(),顶部两行是

java.​lang.​StrictMath
public static strictfp double toRadians(double angdeg)

这是有道理的,因为我使用的 JDK 具有使用 strictfp 修饰符定义的 StrictMath.toRadians()。但是,如果我查看the StrictMath Javadoc online,我看不到任何提及strictfp。例如,toRadians() Javadoc 的第一行是

public static double toRadians(double angdeg)

我使用的是 JDK 1.8.0_241,运行时稍微领先。相当肯定它是 Oracle JDK。据我所知,StrictMath 的 JDK 源代码中的 Javadoc cmets 与上面链接的 Oracle 页面中发布的内容相匹配。

是Javadoc工具忽略了strictfp修饰符还是Oracle故意将它从生成的StrictMathJavadoc HTML页面中去掉?

(我尝试为虚拟 strictfp 函数生成 Javadoc,但在我尝试执行此操作的项目中似乎出现了一大堆看似无关的 Javadoc 错误)。

【问题讨论】:

    标签: java javadoc strictfp


    【解决方案1】:

    正如 Java 8 的 javadocdocumentation 所说:

    javadoc 命令可以包含修饰符publicprotectedprivateabstractfinalstatictransientvolatile344@4或nativesynchronizednative 修饰符被视为实现细节,而不是 API 规范的一部分。

    它没有明确列出strictfp,但由于strictfp是一个影响方法实现的特性,而不是它的使用方式,因此它被排除在外。

    【讨论】:

    • 我会考虑 strictfp 规范的一部分。
    • @MarquisofLorne 不超过 synchronized 不属于过时的 Vector 类规范的一部分,即使 javadoc 的文本说 “矢量是同步的”。请注意,StrictMath 的 javadoc 没有提及 strictfp,它只讨论了 fdlibm 和“IEEE 754 核心功能”,因此该类可以选择将所有方法实现为 native,在这种情况下strictfp 没关系。这是一个实现细节!
    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 2011-03-31
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2011-04-12
    • 1970-01-01
    相关资源
    最近更新 更多