Java 9:如何找到添加的每个新方法

Jac*_* G. 11 java methods javadoc class java-9

在Java 9的发布,许多方法已经被添加到许多类,大部分(如果不是全部),其中包含了文档中的以下内容:

从:9

是否有一种简单的方法可以在任意类中添加任何新方法而无需浏览其文档?

示例: ByteBuffer.alignedSlice

Nam*_*man 13

您可能正在寻找类似jdkapidiff的东西,它使用japicmp生成类似于作者托管的报告 - jdk8-jdk9-api-diff.

您可以克隆项目并执行mvn clean install以获取本地的类似报告.

提供这样的文件~.m2/toolchains.xml:

<?xml version="1.0" encoding="UTF8"?>
<toolchains>
    <toolchain>
        <type>jdk</type>
        <provides>
            <version>1.8</version>
            <vendor>oracle</vendor>
        </provides>
        <configuration>
            <jdkHome>/path/to/jdk-1.8</jdkHome>
        </configuration>
    </toolchain>
    <toolchain>
        <type>jdk</type>
        <provides>
            <version>9</version>
            <vendor>oracle</vendor>
        </provides>
        <configuration>
            <jdkHome>/path/to/jdk-9</jdkHome>
        </configuration>
    </toolchain>
</toolchains>
Run Code Online (Sandbox Code Playgroud)

  • @nullpointer不清楚为什么有人会downvote,这显然是一个很好的答案.事实上,我怀疑存在更好的一个. (5认同)
  • @pvg*在没有*的情况下找到任意类中添加的任何新方法.在生成的报告中,选择该任意类,然后在这种情况下选择**NEW**方法.它们被添加为"Since:9". (2认同)
  • @nullpointer我的观点是japicmp使用反射进行比较并找到差异.这可能是海报真正想要的.但是如果你真的想找到具有特定javadoc标签的那些,你就不能像这样可靠地找到它们,因为这些信息根本不在编译的类中. (2认同)
  • 您发布的报告链接基本上就是我所寻找的; 非常感谢你! (2认同)

Ala*_*man 6

除了新的@since 9类和成员之外,现有类和成员还有许多变化.JSR 379的最终版本包括一个带有完整差异集的附件.该草案在线:http: //cr.openjdk.java.net/~iris/se/9/java-se-9-fr-spec-01/apidiffs/overview-summary.html

  • @Eugene:然后你得到行号或包含"从9开始"的行,并且必须花很多时间来获得实际标记的成员.除此之外,为什么每个人都可以从源代码生成它时,[包含API文档的网站](https://docs.oracle.com/javase/9​​/docs/api/?overview-summary.html)?它使生活更轻松,标准doclet很容易生成基于`@ Since`标签的"What's New"部分,它不仅对JDK API有用,而且非常有用...... (4认同)
  • 不幸的是,差异报告了大量的伪变化,结果是格式化变化,通常甚至没有明显的效果...... (2认同)