Frage

Was ist die Liste der gültigen @SuppressWarnings Warnung Namen in Java?

Das Bit, das zwischen dem ("") in @SuppressWarnings("") kommt.

War es hilfreich?

Lösung

Es hängt von Ihrem IDE oder Compiler.

Hier ist eine Liste für Eclipse Galileo:

  
      
  • alle alle Warnungen zu unterdrücken
  •   
  • Boxen relativ Warnungen zu unterdrücken, zu Boxen / Unboxing-Operationen
  •   
  • Besetzung zu unterdrücken Warnungen bezüglich Operationen zu werfen
  •   
  • dep-ann , um Warnungen zu unterdrücken in Bezug auf veraltete Anmerkung
  •   
  • deprecation zu unterdrücken Warnungen in Bezug auf deprecation
  •   
  • fallthrough Warnungen in Bezug auf fehlende Pausen in Schalter zur Unterdrückung   Aussagen
  •   
  • schließlich Warnungen zu unterdrücken, relativ zu finally-Block, die nicht tun   Rückkehr
  •   
  • versteckt , um Warnungen zu unterdrücken im Verhältnis zu den Einheimischen, die Variable
  • verstecken   
  • unvollständig-Schalter , um Warnungen in Bezug auf fehlende Einträge unterdrücken   in einer switch-Anweisung (Enum Fall)
  •   
  • nls , um Warnungen zu unterdrücken im Vergleich zu nicht-nls Stringliterale
  •   
  • null zu unterdrücken Warnungen bezüglich Analyse auf null
  •   
  • Einschränkung , um Warnungen unterdrücken relativ zur Verwendung von entmutigten oder   verbotene Referenzen
  •   
  • seriell Warnungen zu unterdrücken, in Bezug auf fehlende serialVersionUID   Feld für eine serializable Klasse
  •   
  • statisch-Zugriff , um Warnungen in Bezug auf eine falsche statische unterdrücken   Zugang
  •   
  • synthetischer Zugang Warnungen nicht optimiert relativ zu unterdrücken   Zugang von inneren Klassen
  •   
  • nicht aktiviert , um Warnungen in Bezug auf unkontrollierte Operationen unterdrücken
  •   
  • unqualifizierte-Feldzugriff Warnungen Feld relativ zu unterdrücken   Zugang unqualifizierte
  •   
  • nicht verwendet , um Warnungen in Bezug auf nicht verwendeten Code unterdrücken
  •   

Liste für Indigo fügt hinzu:

  
      
  • javadoc , um Warnungen unterdrücken relativ zu javadoc Warnungen
  •   
  • rawtypes , um Warnungen unterdrücken relativ zur Verwendung von rohen Typen
  •   
  • static-Methode , um Warnungen in Bezug auf Methoden unterdrücken, die als statisch
  • deklariert werden könnten   
  • Super zu unterdrücken Warnungen bezüglich eines Verfahrens ohne Super Anrufungen zu überschreiben
  •   

Liste für Juno fügt hinzu:

  
      
  • Ressource Warnungen Nutzung von Ressourcen des Typs Verschließbare
  • relativ zu unterdrücken   
  • sync-Überschreibung Warnungen zu unterdrücken, aufgrund fehlender synchronisieren, wenn eine synchronisierte Methode
  • zwingenden   

Kepler und Luna verwenden die gleiche Token-Liste als Juno ( Liste ).

Andere werden ähnlich, aber unterschiedlich sein.

Andere Tipps

Alle Werte sind zulässig (nicht erkannte diejenigen, werden ignoriert). Die Liste der anerkannten Vereinen ist Compiler spezifisch.

Das unchecked und deprecation Java Tutorials aufgelistet sind als die beiden Warnungen von The Language Specification Java erforderlich, daher sollten sie mit allen Compilern gültig:

  

Jede Compiler-Warnung gehört zu einer Kategorie. Die Java Language Specification listet zwei Kategorien:. Deprecation und ungeprüft

Die spezifischen Abschnitte innerhalb Die Java Language Specification wo sie definiert sind, nicht konsistent über Versionen . In der Java SE 8 Spezifikation unchecked und deprecation als Compiler-Warnungen in den Abschnitten aufgelistet 9.6.4.5. @SuppressWarnings und 9.6.4.6 @deprecated sind.

Für Sun-Compiler, javac -X läuft gibt eine Liste aller von dieser Version erkannten Werte. Für 1.5.0_17, erscheint die Liste zu sein:

  • alle
  • deprecation
  • ungeprüft
  • fallthrough
  • Pfad
  • seriell
  • schließlich

Die Liste ist Compiler spezifisch. Aber hier werden die Werte in Eclipse-:

  
      
  • allDeprecation deprecation sogar in veralteten Code
  •   
  • allJavadoc ungültige oder fehlende javadoc
  •   
  • assertIdentifier Auftreten von assert als Kennung verwendet
  •   
  • Boxen Autoboxing Umwandlung
  •   
  • charConcat , wenn ein char Array in einer String-Verkettung verwendet wird, ohne in eine Zeichenfolge konvertiert wird explizit
  •   
  • conditionAssign möglich versehentliche boolean Zuordnung
  •   
  • constructorName Verfahren mit   Konstruktor Name
  •   
  • dep-ann fehlt @deprecated   Anmerkung
  •   
  • deprecation Verwendung von veralteten Typ oder Member außerhalb veraltet Code
  •   
  • entmutigt Verwendung von Typen eine entmutigte Zugriffsregel
  • passend   
  • emptyBlock undokumentiert leerer Block
  •   
  • enumSwitch , unvollständig-Schalter unvollständig Enum Schalter
  •   
  • fallthrough möglich fallthrough Fall
  •   
  • fieldHiding Feld versteckt eine weitere Variable
  •   
  • finalBound Typparameter mit der endgültigen Grenze
  •   
  • schließlich schließlich nicht blockieren Abschluss normalerweise
  •   
  • verboten Verwendung von Arten eine verbotene Zugriffsregel
  • passend   
  • versteckt Makro für fieldHiding, localHiding, typeHiding und maskedCatchBlock
  •   
  • indirectStatic indirekten Verweisen auf statische Member
  •   
  • intfAnnotation Annotationstyp als Super-Schnittstelle
  •   
  • intfNonInherited Schnittstelle nicht-geerbte Methode Kompatibilität
  •   
  • javadoc ungültig javadoc
  •   
  • localHiding lokale Variable eine andere Variable
  • versteckt   
  • maskedCatchBlocks versteckt catch-Block
  •   
  • nls Nicht-nls Stringliterale (fehlende Tags // $ NON-NLS)
  •   
  • noEffectAssign Zuordnung ohne Effekt
  •   
  • null Potential fehlende oder redundante null Prüfung
  •   
  • nullDereference fehlt null Prüfung
  •   
  • Über ann fehlt @Override Anmerkung
  •   
  • paramAssign Zuordnung zu einem Parameter
  •   
  • pkgDefaultMethod Versuch Paket-Standardmethode
  • außer Kraft setzen   
  • raw Nutzung einer rohen Art (anstelle einem parametrisierte Typ)
  •   
  • Semikolon unnötiges Semikolon oder leere Anweisung
  •   
  • seriell fehlt serialVersionUID
  •   
  • specialParamHiding Konstruktor oder Setter Parameter versteckt ein anderes Feld
  •   
  • statisch-Zugriff Makro für indirectStatic und staticReceiver
  •   
  • staticReceiver , wenn ein nicht statisch Empfänger verwendet, um ein statisches Feld zu erhalten oder eine statische Methode aufrufen
  •   
  • Super Überschreiben einer Methode ohne einen Super Aufruf zu machen
  •   
  • Unterdrückungs aktivieren @SuppressWarnings
  •   
  • syntheticAccess, synthetischen Zugang , wenn für Innerclass synthetischen Zugang Durchführung
  •   
  • Aufgaben aktivieren Sie die Unterstützung für Aufgaben-Tags im Quellcode
  •   
  • typeHiding Typparameter eine andere Art
  • versteckt   
  • nicht aktiviert nicht markiert Typ Betrieb
  •   
  • unnecessaryElse unnötige else-Klausel
  •   
  • unqualifizierte-Feldzugriff, unqualifiedField unqualifizierte   Verweis auf das Feld
  •   
  • nicht verwendete Makro für unusedArgument, unusedImport, unusedLabel, unusedLocal, unusedPrivate und unusedThrown
  •   
  • unusedArgument nicht verwendete Methode Argument
  •   
  • unusedImport nicht verwendeter Import Referenz
  •   
  • unusedLabel nicht verwendetes Label
  •   
  • unusedLocal nicht verwendete lokale Variablen
  •   
  • unusedPrivate nicht verwendete private Elementdeklaration
  •   
  • unusedThrown ungenutzt erklärt geworfen Ausnahme
  •   
  • uselessTypeCheck unnötiger Guss / Instanceof Betrieb
  •   
  • varargsCast varargs Argument explizite Umwandlung benötigt
  •   
  • warningToken unhandled Warn Token in @SuppressWarnings
  •   

Sun JDK (1.6) hat eine kürzere Liste der unterstützten Warnungen:

  
      
  • deprecation Überprüfen Sie für die Verwendung von abgeschriebenen Artikel.
  •   
  • nicht aktiviert Geben Sie mehr Details für unkontrollierte Umwandlung Warnungen, die von der Java Language Specification beauftragt werden.
  •   
  • seriell Warn serialVersionUID Definitionen auf serializable Klassen über fehlt.
  •   
  • schließlich über schließlich Klauseln warnen, die normalerweise nicht abschließen können.
  •   
  • fallthrough Überprüfen Schalterblocks für Durchfall Fälle und eine Warnmeldung für jeden zur Verfügung stellen, die gefunden werden.
  •   
  • Pfad Überprüfen Sie für einen nicht vorhandenen Pfad in Umgebung Wege (wie Classpath).
  •   

Die neueste verfügbare javac (1.6.0_13) für Mac hat die folgenden unterstützten Warnungen

  
      
  • alle
  •   
  • Besetzung
  •   
  • deprecation
  •   
  • divzero
  •   
  • leer
  •   
  • nicht aktiviert
  •   
  • fallthrough
  •   
  • Pfad
  •   
  • seriell
  •   
  • schließlich
  •   
  • Überschreibungen
  •   

Ein neuer Favorit für mich ist in IntelliJ @SuppressWarnings("WeakerAccess"), die sie von beschweren hält, wenn er denkt, sollten Sie einen schwächeren Zugriffsmodifikator haben, als Sie verwenden. Wir haben den Zugang der Öffentlichkeit haben, für einige Testmethoden zu unterstützen und die @VisibleForTesting Anmerkung nicht daran hindert, die Warnungen.

ETA: „Anonymous“, kommentierte auf der Seite verknüpft @MattCampbell, die folgenden unglaublich nützlich Anmerkung:

  

Sie sollten nicht diese Liste müssen für den Zweck verwenden Sie   beschreibt. IntelliJ werden diese SuppressWarnings für Sie hinzufügen   automatisch, wenn Sie bitten, es zu. Es ist seit der Lage, dies zu tun   so viele Veröffentlichungen zurück, wie ich mich erinnere.

     

Gehen Sie einfach auf die Stelle, wo Sie die Warnung und geben Sie haben Alt-Eingabe   (Oder wählen Sie ihn in der Liste Inspektionen, wenn Sie es dort sehen).   Wann kommt das Menü, um die Warnung zeigt, und bietet es zu beheben für   Sie (zum Beispiel, wenn die Warnung dann „macht statisch“ „Methode kann statisch sein“   Angebot ist IntellJ ist es für Sie zu beheben), anstatt „eingeben“ auszuwählen,   benutzen Sie einfach den Pfeil nach rechts, um das Untermenü zu gelangen, die haben   Optionen wie „Bearbeiten Inspektionsprofileinstellung“ und so weiter. Bei der   Ende der Liste werden Optionen wie „alle Inspektionen Unterdrückt für   Klasse“,‚Suppress für die Klasse‘,‚Suppress für die Methode‘und gelegentlich   „Unterdrückt für Anweisung“. Sie wollen wahrscheinlich je nachdem, welche von ihnen   erscheint auf der Liste zuletzt. Die Auswahl eines dieser fügt ein   @SuppressWarnings Anmerkung (oder Kommentar in einigen Fällen), um Ihren Code   die Warnung in Frage zu unterdrücken. Sie werden nicht an dem erraten müssen   Anmerkung hinzuzufügen, weil IntelliJ auf die Warnung basiert wählen   Sie ausgewählt haben.

Und das scheint eine viel vollständigere Liste zu sein, wo ich einige Warnungen speziell für Android-Studio gefunden, dass ich nicht an anderer Stelle finden konnte (z SynchronizeOnNonFinalField)

https://jazzy.id.au/2008/10/30/ list_of_suppresswarnings_arguments.html

Oh, jetzt SO Richtlinien contraddict-SO Einschränkungen. die Liste kopieren, statt sie als nur den Link auf der einen Seite, ich soll. Aber auf der anderen Seite, würde dies die maximal zulässige Anzahl von Zeichen nicht überschreiten. So hoffen wir, dass nur die Verbindung nicht brechen wird.

JSL 1.7

der Oracle-Dokumentation erwähnt:

  • unchecked: Ungeprüfter Warnungen durch die Zeichenfolge „ungeprüft“ identifiziert werden.
  • deprecation: Ein Java-Compiler muss eine deprecation Warnung erzeugen, wenn ein Typ, Verfahren, Feld oder Konstruktor, deren Deklaration mit dem Vermerk kommentiert @deprecated verwendet wird (dh außer Kraft gesetzt, aufgerufen wird, oder namentlich erwähnt), es sei denn: [. ..] die Verwendung ist innerhalb eines Unternehmens, das die Warnung mit der Anmerkung @SuppressWarnings ( „deprecation“) zu unterdrücken bezeichnet ist; oder

Es erklärt dann, dass Implementierungen hinzufügen und dokumentieren ihre eigene:

  

Compiler-Anbieter sollten die Warnung Namen dokumentieren sie in Verbindung mit dieser Anmerkung Typ unterstützen. Anbieter werden aufgefordert, zusammenzuarbeiten, um sicherzustellen, dass die gleichen Namen für mehrere Compiler arbeiten.

Ich möchte nur hinzufügen, dass es eine Master-Liste von IntelliJ unterdrücken Parameter an: https: // gist.github.com/vegaasen/157fbc6dce8545b7f12c

Es sieht ziemlich umfassend. Teilweise:

Warning Description - Warning Name

"Magic character" MagicCharacter 
"Magic number" MagicNumber 
'Comparator.compare()' method does not use parameter ComparatorMethodParameterNotUsed 
'Connection.prepare*()' call with non-constant string JDBCPrepareStatementWithNonConstantString 
'Iterator.hasNext()' which calls 'next()' IteratorHasNextCallsIteratorNext 
'Iterator.next()' which can't throw 'NoSuchElementException' IteratorNextCanNotThrowNoSuchElementException 
'Statement.execute()' call with non-constant string JDBCExecuteWithNonConstantString 
'String.equals("")' StringEqualsEmptyString 
'StringBuffer' may be 'StringBuilder' (JDK 5.0 only) StringBufferMayBeStringBuilder 
'StringBuffer.toString()' in concatenation StringBufferToStringInConcatenation 
'assert' statement AssertStatement 
'assertEquals()' between objects of inconvertible types AssertEqualsBetweenInconvertibleTypes 
'await()' not in loop AwaitNotInLoop 
'await()' without corresponding 'signal()' AwaitWithoutCorrespondingSignal 
'break' statement BreakStatement 
'break' statement with label BreakStatementWithLabel 
'catch' generic class CatchGenericClass 
'clone()' does not call 'super.clone()' CloneDoesntCallSuperClone

Ich habe bemerkt, dass //noinspection in sein auto-generierte IntelliJ

  • sicherstellen, dass Sie nicht bereits ein Plan @SuppressWarninigs vor der Anweisung
  • Sie können nun automatisch generieren, die spezifische //noinspection mit Alt + Enter , wenn Sie die Warnung und dann die Pfeil-Rechts-Taste ausgewählt haben, , um zu sehen die Unterdrückt für ... Option

hier gelandet, als ich ein „Schalter hat zu wenig Fall Etiketten“ zu unterdrücken wollte von IntelliJ warnen. Ich habe nicht eine komplette Liste für IntelliJ der @SuppressWarning Unterstützung finden, aber //noinspection hat den Trick für mich.

Wenn Sie SonarLint verwenden, versuchen, über die Methode oder Klasse die ganze Tintenfisch string:     @SuppressWarnings ( "Tintenfisch: S1172")

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top