2012-04-03 15 views
0

Ich verwende eine Open-Source-Java-Bibliothek namens Weka in einem Eclipse Indigo-Projekt. Die Bibliothek scheint etwas veraltet zu sein, daher zeigt Eclipse mir Tausende von Warnungen in Bezug auf seinen Code. Ein typisches Beispiel ist:Wie vermeidet man die Verwendung von @SupressWarnings?

ArrayList ist ein Rohtyp. Verweise auf generische Typ Arraylist < E> sollte

In Bezug auf eine Zeile wie diese parametriert werden:

ArrayList t = new ArrayList(); 

Eclipse schnelle Lösung zeigt an, dass ich entweder den obigen Code umwandeln Generika zu verwenden, oder dass Ich kann eine @SuppressWarnings 'rawtypes' Annotation als ein Update hinzufügen.

Aber beide Fixes beinhalten Änderungen am Code des Open-Source-Projekts und ich musste diese Änderungen mehrere (hunderte von?) Mal machen.

Stattdessen könnte es einige globale Einstellung für Eclipse (oder die Java-Compiler?), Wo ich zeigen kann, dass ich will nicht für ein bestimmtes Projekt gewarnt werden?

+0

Wenn ich google benutze, bekomme ich ... http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler% 2Fref-preferences-errors-warnings.htm –

+0

Danke Brian. Ich habe die Frage bearbeitet, um die Tatsache widerzuspiegeln, dass ich mir keine Gedanken über eine bestimmte Warnmeldung mache - ich möchte sie alle für ein bestimmtes Projekt meiden. – urig

Antwort

1

Es wurde vorgeschlagen, dass Sie einfach die "anstößigen" Warnungen über "Fenster"> "Voreinstellungen" deaktivieren, aber das deaktiviert sie für alle Projekte in Ihrem Arbeitsbereich, einschließlich der Projekte, die Ihren eigenen Java 1.5 + Code enthalten. Das ist eine schlechte Idee, denn Sie sollten auf die Warnungen achten, wenn sie in Ihrem Code vorkommen. (Wenn Sie sie ignorieren, können unerwartete Laufzeitausnahmen auftreten.)

Eine andere Möglichkeit wäre, die Projekteinstellungen so zu ändern, dass der Quellcode des Java-Compilers auf Java 1.4 oder früher gesetzt wird. Sie sollten nur dies auf dem Weka-Projekt tun. Das Projekt, das Ihren Code enthält, muss eine Quellstufe von mindestens Java 1.5 verwenden, da Sie Generika verwenden.


Dank. Könnte dies später zu Problemen führen, wenn ich das Projekt auf einem Produktionsserver mit JRE 1.6 bereitstellen möchte? Muss ich JRE 1.4 nicht auch dort haben?

Nein ... für ein paar Gründe:

  • Es sei denn, Sie sind Weka ändern, können Sie die Original-JAR-Dateien verwenden und alle Build-Artefakte, die von Eclipse-erstellt ignorieren.

  • Die Quellenebene und die Zielebene sind unterschiedlich. Die Quellenebene gibt an, welcher Version der Java-Sprache der Quellcode entsprechen muss. Die Zielebene gibt an, welche Version des Klassendateiformats verwendet werden soll. Sie können den Java-Compiler dazu veranlassen, Java 1.6-Bytecode-Format für Java 1.4-Quellcode zu generieren. (Aber nicht umgekehrt).

  • Ein Java 1.6 JRE wird glücklicherweise ein Java 1.4 JAR ausführen.

Auch dort, wo kann ich das tun? Meintest du Project> Eigenschaften> Java Compiler> Compiler Compliance-Level?

Ja. Beachten Sie, dass Sie die Quell- und Ziel-Ebenen unabhängig voneinander angeben können ... modulo die Einschränkung, dass die Java-Compiler nur bestimmte Kombinationen zulassen.

+0

+1, viel bessere Lösung als das Ausschalten bestimmter Warnungen in der IDE. – darrengorman

+0

Danke. Könnte dies später zu Problemen führen, wenn ich das Projekt auf einem Produktionsserver mit JRE 1.6 bereitstellen möchte? Muss ich JRE 1.4 nicht auch dort haben? – urig

+0

Auch, wo mache ich das? Meintest du Project> Eigenschaften> Java Compiler> Compiler Compliance-Level? – urig

1

Versuchen Sie Fenster-> Einstellungen, Java-> Compiler-> Fehler/Warnungen. Ich sehe, dass es einen Bereich "Generische Typen" unten gibt. Ich weiß nicht, ob das genau das ist, wonach Sie suchen, aber aus meiner Erfahrung ist dies ein guter Ort, um bestimmte Eclipse-Warnungen zu ignorieren.

+0

+1 aber aus meiner Erfahrung ist es ein guter Ort, um mehr Warnungen zu aktivieren. –

+0

Danke. Definitiv eine Option. Natürlich muss ich auf "Projektspezifische Einstellungen konfigurieren ..." klicken und mein Weka-Projekt auswählen, um daran zu arbeiten. Aber die Kehrseite ist, dass ich eine lange Liste verschiedener Warnungsarten durchgehen muss und jede davon ignorieren muss. Ein aber umständliches. – urig

1

In Eclipse navigieren Sie zu Fenster-> Einstellungen-> Java-> Compiler-> Fehler/Warnungen-> Generische Typen Hier finden Sie eine Kategorie für "Verwendung von Rohtyp", die Sie ignorieren können, anstatt zu warnen.

4

Fenster> Einstellungen> Java> Compiler> Fehler/Warnungen> Generische Typen. Alternativ kann dies auf einem Projektbasis eingestellt werden (wenn Sie andere Projekte in Ihrem Arbeitsbereich haben Sie das gleiche halten) mit einem Rechtsklick auf das Projekt> Eigenschaften> Java> Fehler/Warnungen> Aktivieren Sie „projektspezifische Einstellungen“ und dann wie vorher.

Verwandte Themen