Java-Generics: Compiler-Fehler wird in Eclipse nicht angezeigt

8

Ich habe diese Klassen:

%Vor%

Ich kann diesen Code ohne Probleme auf Eclipse kompilieren und ausführen, aber wenn ich mvn compile aufruft, wird dieser Fehler ausgelöst:

%Vor%

Der Fehler ist ziemlich selbsterklärend, und theoretisch hat javac Recht und der Eclipse-Compiler ist falsch.

Warum gibt es so einen Unterschied?

Hier sind die Details der Umgebung:

  • Eklipse

    • Mars.2 Release (4.5.2)
    • jdk 1.8.0_71
    • Compiler-Konformitätsstufe: 1.8
  • Maven

    • Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13: 57: 37 + 02: 00)
    • Maven nach Hause: C: \ Develop \ tools \ apache-maven-3.3.3
    • Java-Version: 1.8.0_71, Hersteller: Oracle Corporation
    • Java-Startseite: C: \ Programme \ Java \ jdk1.8.0_71 \ jre
    • Standardgebietsschema: it_IT, Plattformcodierung: Cp1252
    • Betriebssystemname: "Windows 10", Version: "10.0", arch: "amd64", Familie: "dos"
    • maven-compiler-plugin:

      %Vor%

Frage : Wie kann ich das Eclipse-Compiler-Verhalten auf javac ausrichten (aber ich möchte Javac nicht in Eclipse verwenden)?

    
Michele Mariotti 28.06.2016, 07:55
quelle

1 Antwort

6

Das ist eine weitere Diskrepanz zwischen dem Eclipse-Java-Compiler und dem offiziellen JDK-Compiler (weil diese tatsächlich verschieden sind) . Und Javac ist nicht immer right Schauspieler in diesem Spiel, Sie können tatsächlich einen Javac Bug nicht im Eclipse-Compiler auftreten.

Ein ähnliches Problem wurde bereits gemeldet: Fehler 456459 : Diskrepanz zwischen Eclipse Compiler und Javac - Enums, Interfaces und Generics .

Um Maven mit Eclipse auszurichten, können Sie konfigurieren maven-compiler-plugin wie folgt:

%Vor%

Im Grunde sagen Sie Maven, dass Sie den Eclipse-Java-Compiler verwenden sollen. Ich war in der Lage, Ihr Problem zu reproduzieren und diese Konfiguration anzuwenden, die Maven Build war dann in Ordnung. Ich würde diesen Ansatz jedoch nicht empfehlen.

Andererseits ist die Konfiguration von Eclipse zur Verwendung des JDK-Compilers etwas schwieriger, weil der Eclipse-Compiler Teil der IDE-Funktionen ist. Eine Prozedur wird im Stack-Überlauf erläutert. Q / a: Ausführen von Javac aus Eclipse .

    
A_Di-Matteo 28.06.2016, 09:00
quelle