tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
583
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DarthShader DarthShader ist offline Mitglied Platin
    Registriert seit
    May 2004
    Beiträge
    683
    Hallo zusammen,

    ich habe kürzlich meine Eclipse Version von Ganymede (3.4.1) nach Helios aktualisiert. Jetzt zeigt er mir Warnings an, die vorher nicht da waren, z.B. das hier:

    Code java:
    1
    2
    3
    4
    
    @SuppressWarnings( "unchecked" )
    public class MyClass {
        private List data;
    }

    Code :
    1
    
    List is a raw type. References to generic type List<E> should be parameterized

    Natürlich ist das Warning ansich korrekt, aber ich habe oben ja das "@SuppressWarnings" stehen. In der alten Eclipse Version hat es gereicht, um das Warning zu unterdrücken. Jetzt muss man es anscheinend direkt an das Feld schreiben, ist meine Annahme korrekt?

    Es macht natürlich Sinn, die "@SuppressWarnings" dort hinzusetzen, wo sie benötigt werden (Vertical Distance), aber ich fand es schon nett - wenn ich eine ganze Klasse habe, die z.B. Java 1.4 kompatibel sein soll, kann ich die Warnings mit nur einem "@SuppressWarnings" an der Klasse ausblenden.

    Ist das jetzt eine Änderung von Eclipse, einem JDK Update oder woher kommt diese "Änderung"?


    Danke!
    Geändert von DarthShader (02.09.10 um 10:58 Uhr)
     

  2. #2
    Tim Bureck Tim Bureck ist offline Mitglied Brokat
    Registriert seit
    Apr 2009
    Ort
    Düsseldorf (NRW)
    Beiträge
    498
    Der richtige Parameter für @SuppressWarnings wäre in diesem Fall "rawtypes". "unchecked" unterdrückt Warnungen für unsichere Casts.
     

  3. #3
    Matt297 Matt297 ist offline Mitglied Gold
    Registriert seit
    Oct 2008
    Beiträge
    172
    Ich vermute eher, dass du vorher in den Settings(Workspace oder Projekt-Settings, eigentlich egal) eingestellt hast, dass er den 1.4-Compiler verwenden soll und durch das Update wurde das anscheinend auf 1.6-Compiler gestellt wodurch du jetzt diese Warnings bekommst, denn Eclipse selbst generiert ja keine Warnings, es leitet nur die weiter, die es vom Compiler bekommt.
    Wenn deine Klasse 1.4-kompatibel sein soll, dann würde ich dir auch empfehlen den 1.4er-Compiler erneut einzustellen um die Kompabilität zu gewährleisten.

    Gruß
    Matt
     

  4. #4
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    900
    Der Compiler kommt aber von eclipse und ändert sich mit jeder eclipse-Version
    Dadurch ändern sich auch die Einstellungen. Mit Java 1.4 wäre der obige Code ja richtig.

    @DarthShader
    Ich würde, wenn möglich und du sicher weißt welcher Typ da raus kommt, diesen da auch angeben und dann zur Not die Warnung zum casten für die Zeile unterdrücken. Sonst zieht sich das durch die ganze Anwendung und es wird nie auf neue wichtige Sprachfeatures umgestellt.

    (Autoboxing lasse ich aber lieber weg )

    P.S.: eclipse hat Möglichkeiten einem bei der Umstellung etwas zu helfen
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

  5. #5
    DarthShader DarthShader ist offline Mitglied Platin
    Registriert seit
    May 2004
    Beiträge
    683
    Hallo,

    vielen Dank für Eure Antworten!

    In meinem "alten" Eclipse hatte ich Version 1.6 eingestellt, da muss sich also was am Eclipse Compiler geändert haben. Der Tipp mit dem "rawtypes" ist natürlich völlig richtig - und ich sehe auch gerade, dass die Angabe an der Klasse, um in einem Schwung die Warnings los zu werden, immernoch funktioniert Ich weiß, dass dies natürlich nicht empfehlenswert ist, aber es gibt noch Ausnahmen, bei denen man das durchaus tun kann.

    Also nochmals danke für Eure Hilfe!
     

  6. #6
    Tim Bureck Tim Bureck ist offline Mitglied Brokat
    Registriert seit
    Apr 2009
    Ort
    Düsseldorf (NRW)
    Beiträge
    498
    Wenn du den Typ nicht kennst, kannst du die Warnung auch umgehen, indem du als Typ "?" angibst.

    Code java:
    1
    
    List<?> objects = new List<?>();
     

Ähnliche Themen

  1. [eclipse PHP Helios SR1] Namespaces
    Von gordonk im Forum PHP
    Antworten: 2
    Letzter Beitrag: 09.02.11, 19:49
  2. Antworten: 0
    Letzter Beitrag: 15.09.10, 09:41
  3. VM argumente unter Eclipse Ganymede
    Von Tagamoga im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 23.06.09, 09:56
  4. Eclipse Ganymede & die Workspace-Auswahl
    Von Ronin-Jay im Forum Java
    Antworten: 2
    Letzter Beitrag: 09.10.08, 18:23
  5. Eclipse Code Folding (Ganymede)
    Von WolfBauer im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 19.09.08, 10:18