2017-11-08 4 views
10

Mit der Veröffentlichung von Java 9 werden zahlreiche Methoden zu vielen Klassen hinzugefügt wurde hinzugefügt finden, die meisten (wenn nicht alle) enthalten, von denen folgend die in ihrer Dokumentation:Java 9: ​​Wie jede neue Methode

Seit: 9

Gibt es eine einfache Möglichkeit, neue Methoden in einer beliebigen Klasse zu finden, ohne die Dokumentation durchforsten zu müssen?

Beispiel: ByteBuffer.alignedSlice

+2

Sie könnten ein kleines Doclet dafür schreiben und javadoc haben sie für Sie ausgespuckt. https://docs.oracle.com/javase//docs/technotes/guides/javadoc/doclet/overview.html – pvg

+0

Ich suche nur nach der Zeichenfolge * @ seit 9 * in src.zip – ZhekaKozlov

Antwort

13

Sie sind wahrscheinlich auf der Suche nach so etwas wie jdkapidiff die japicmp verwendet Berichte ähnlich einer vom Autor selbst gehostet hier zu generieren - jdk8-jdk9-api-diff.

Sie können das Projekt klonen undausführenum den ähnlichen Bericht über Ihren lokalen zu erhalten.

eine Datei ~.m2/toolchains.xml wie folgt bereitstellen:

<?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> 
+5

@nullpointer Unklar warum jeder würde Downvote, das ist eindeutig eine gute Antwort. Tatsächlich bezweifle ich, dass es einen besseren gibt. – Nicolai

+0

Es ist eine vollkommen gute Antwort, obwohl es nicht genau das finden wird, was die Frage verlangt - Methoden, die speziell mit @Since kommentiert wurden. – pvg

+2

@pvg * Finden Sie alle neuen Methoden, die in einer beliebigen Klasse ohne * hinzugefügt wurden. Wählen Sie im generierten Bericht diese beliebige Klasse und suchen Sie dann nach den ** NEW ** -Methoden. Sie sind hinzugefügt "Seit: 9". – nullpointer

3

Es gibt viele Änderungen an bestehenden Klassen und Mitglieder, zusätzlich zu den neuen @since 9 Klassen und Mitglieder. Die endgültige Version von JSR 379 enthält einen Anhang mit dem kompletten Satz von Diffs. Der Entwurf ist hier online: http://cr.openjdk.java.net/~iris/se/9/java-se-9-fr-spec-01/apidiffs/overview-summary.html

+2

Leider meldet das diff tonnenweise Pseudoänderungen, die sich als Formatierungsänderungen herausstellen, oft ohne sichtbare Wirkung ... – Holger

+0

@Holger eine kleine Frage, warum klonen die Sourcen und grep nicht für 'seit 9', bin ich mir ziemlich sicher hatte ein Skript, das das tat; oder habe ich etwas vermisst? – Eugene

+4

@Eugene: dann erhalten Sie Zeilennummern oder die Zeilen, die "seit 9" enthalten und müssen große Längen nehmen, um das tatsächlich markierte Mitglied zu erhalten. Außerdem, warum gibt es [Website mit der API Dokumentation] (https://docs.oracle.com/javase/9/docs/api/?overview-summary.html) wenn jeder es aus den Quellen generieren kann? Es macht das Leben einfacher und es wäre so einfach für das Standard-Doclet, einen "What's New" -Abschnitt basierend auf '@ Since'-Tags zu generieren und es wäre soooo nützlich, nicht nur für die JDK-API ... – Holger