Neben den von Generics kommenden Kennungen rawtype und unchecked gibt es weitere, die allerdings nicht sonderlich gut dokumentiert sind. Das liegt auch daran, dass Meldungen während der Programmübersetzung zur Compilerinfrastruktur gehören und nicht zur Laufzeitumgebung, und damit nicht zur traditionellen Java-API. Der Compiler kann im Prinzip beliebige Codeanalysen beliebiger Komplexität vornehmen und bei vermuteten Fehlern Alarm schlagen. Um wir dürfen auch nicht vergessen, dass es nur Warnungen sind: wer als Programmierer alles richtig macht, wird die Meldungen nicht zu Gesicht bekommen. Dennoch ist es relevant, sie zu kennen, denn der Compiler wird manches Mal etwas anmerken, was Entwickler bewusst nutzen wollen, und dann gilt es, die Meldungen abzuschalten.
Die Macher vom Eclipse-Compiler (JDT) dokumentieren die unterstützten Warnungen unter http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-suppress_warnings.htm. Neben den aufgeführten Meldungen all, rawtype und unchecked sind folgende noch interessant:
@SuppressWarnings |
Unterdrückt Meldungen für |
deprecation |
veraltete Elemente, wie new java.util.Date(2012-1970, 3, 3). |
incomplete-switch |
ausgelassene Aufzählungen in swich-case-Anweisungen. |
resource |
ein nicht geschlossenes AutoClosable, wie new java.util.Scanner(System.in).nextLine(). |
serial |
eine serialisierbare Klasse, die keine Serialisierung-ID besitzt. |
unused |
nicht benutzte Elemente, etwa nicht aufgerufene private Methoden. |
Einige Werte von @SuppressWarnings
Vielen Dank für die Liste! Sehr hilfreich und gleich als Bookmark eingestellt.