2009-08-13 12 views
1

Haben Sie diese Idee von dieser vorherigen Frage.Warum unterbricht @SuppressWarnings meinen Code?

How to create a generic array in Java?

Auf jeden Fall ist mein Code wie folgt aus:

public class Slice<E> 
{ 
    private E[] data; 
    public Slice(Class<E> elementType, int size) 
    { 
     //@SuppresWarnings({"unchecked"}) 
     data = (E[])Array.newInstance(elementType, size); 
    } 

} 

ich die unnötige Sachen gelöscht. Dies kompiliert, wenn die Unterdrückung-Anweisung auskommentiert ist. Wenn ich es auskommentiere, bekomme ich

Error: <identifier> expected  
     data = (E[])Array.newInstance(elementType, size); 
      ^

Irgendwelche Ideen? Warum würde das passieren?

Antwort

6

Sie können dort keine Anmerkung einfügen. Es muss vor dem Schlüsselwort public gehen. Und Sie haben den Annotationsnamen ebenfalls falsch geschrieben: Ändern Sie SuppresWarnings in SuppressWarnings.

BEARBEITEN: Wenn Sie eine IDE wie Eclipse verwenden, verwenden Sie normalerweise die Autokorrekturfunktion, um die Anmerkung einzufügen. Natürlich würde es an der richtigen Stelle eingefügt und richtig geschrieben werden.

+0

Das habe ich gleich in meinem Kommentar gesehen Ich habe es gepostet. Vielen Dank :) – Derrick

0

Lange Zeit kein Java für mich, aber Sie würden das auf die Methode setzen, nicht nur irgendwo drin, oder?

+0

In dem anderen Thread haben sie es auf die Methode wie Sie vorschlagen. Ich habe gerade versucht, dass gerade jetzt, und habe diesen Fehler: Klasse SuppresWarnings Lage: nicht Symbol Symbol finden Klasse Scheibe \t @SuppresWarnings ({ „ungeprüft“}) ^ – Derrick

+0

Ja, also Sie brauchen finde das Paket, in dem sich diese Klasse befindet und importiere es. –

+0

@silky: nein ... er muss nur den Namen der Annotationsklasse richtig schreiben :-) –

Verwandte Themen