Sinn der SuppressWarnings("unused")-Annotation

Fant

Bekanntes Mitglied
Hallo zusammen,

ich habe in meinem Kopf gerade irgendwie ein paar Schwierigkeiten mit der @SuppressWarnings-Annotation. Als konkretes Beispiel mache ich mir gerade über den Fall "unused" Gedanken. Es heißt:

SuppressWarnings("unused") is used for suppressing warnings relative to (1) local variables never read, (2) parameters never read, (3) unused imports, (4) unused private members, and (5) unused labels.

Soweit ist auch alles klar. Ich frage mich aber, ob es sinnvolle Beispiele gibt, in denen solche Fälle überhaupt auftreten können? Wieso sollte man z.B. eine (private) Membervariable, oder eine lokale Variable einführen, wenn man sie überhaupt nicht benutzt? Wieso sollte man etwas importieren, was man nicht benötigt? Ist es nicht sinnvoller das, was ohnehin nicht benötigt wird, einfach wegzulassen?

Gruß Fant
 

tfa

Top Contributor
Normalerweise braucht man das SuppressWarnings("unused") nicht. Mir ist es bisher nur im Zusammenhang mit Mocking-Frameworks begegnet:

Java:
@Test
public void irgendeinTollerTest() {
    final MyEntry entry = createEntry();

    new MockUp<MyEntryDao>() {
        @Mock
        @SuppressWarnings("unused")
        public List<MyEntry> findAll() {
            return Arrays.asList(entry);
        }
    };
    MyServiceImpl service = createService();
    service.start();
    assertThat(service.getEntryList().size(), is(1));
}

Ohne das SuppressWarnings meckert der Compiler.
 
M

maki

Gast
Im falle von Methodenparamtern kann das schon Sinn machen, wenn die Methode zB. von einem allgemeinen Interface vorgegeben ist, diese spezielle Implementierung aber eben nicht alle Parameter nutzt die in der Signatur angegeben sind, denn man muss die Parameter dann angegeben, nutzt sie aber nciht.
 
F

Firephoenix

Gast
Im falle von Methodenparamtern kann das schon Sinn machen, wenn die Methode zB. von einem allgemeinen Interface vorgegeben ist, diese spezielle Implementierung aber eben nicht alle Parameter nutzt die in der Signatur angegeben sind, denn man muss die Parameter dann angegeben, nutzt sie aber nciht.

Meinst du damit sowas in der Richtung?
Java:
@Override
    public void foo( int x, String y )
    {
       

    }

Da bekomme ich nämlich keine Warning, allerdings hier:

Java:
@Override
    public void foo( @SuppressWarnings( "unused" )
    int x, String y )
    {

    }
folgende:
Unnecessary @SuppressWarnings("unused")

Kann es sein, dass das in älteren Java/Eclipse-Versionen mal eine Warning gab wenn man Parameter nicht verwendet hat?

Gruß
 
S

SlaterB

Gast
ich habe z.B. eine Testklasse mit 10 Methoden, die in einer anderen Methode alle in 10 Zeilen untereinander aufgerufen werden,
davon sind meist 9 auskommentiert, nur eine aktiv
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
W Sinn eines Singleton ? Java Basics - Anfänger-Themen 14
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
E Sinn: final in Parameterliste verwenden Java Basics - Anfänger-Themen 2
B Sinn von Lambdas? Java Basics - Anfänger-Themen 16
5 Welchen Sinn hat ein Runnable Java Basics - Anfänger-Themen 6
P OOP Sinn von abstrakten Klassen Java Basics - Anfänger-Themen 2
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
B Der Sinn von Arrays Java Basics - Anfänger-Themen 2
Q Container sinn? Java Basics - Anfänger-Themen 3
S string index out of range - es ergibt keinen Sinn Java Basics - Anfänger-Themen 6
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
J Sinn/Nutzen von Scanner Java Basics - Anfänger-Themen 23
B Sinn von Reflections Java Basics - Anfänger-Themen 10
H Vererbung Prinzip der Ersetzbarkeit-Sinn? Java Basics - Anfänger-Themen 9
R Sinn des programmes Java Basics - Anfänger-Themen 10
W Sinn von Konstruktorsyntax und finalize Java Basics - Anfänger-Themen 14
J Worin besteht der Sinn und Anwendungsbereich von Dreidimensionalen Arrays? Java Basics - Anfänger-Themen 11
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
T Sinn von finally? Java Basics - Anfänger-Themen 3
M Variablen Zinseszinsberechnung - Variable ergibt keinen Sinn Java Basics - Anfänger-Themen 15
A Klassen Sinn des Konstruktors Java Basics - Anfänger-Themen 12
P Sinn des Security Managers Java Basics - Anfänger-Themen 2
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Sinn von Jar Dateien Java Basics - Anfänger-Themen 5
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
hdi Sinn von RuntimeExceptions? Java Basics - Anfänger-Themen 90
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
L Sinn hinter Generic? Java Basics - Anfänger-Themen 5
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
A Macht es Sinn Arraylisten mit Gettern zu übergeben? Java Basics - Anfänger-Themen 19
M Variable überwachen und Sinn eines Threads Java Basics - Anfänger-Themen 7
G Sinn vo OOP Java Basics - Anfänger-Themen 5
P Unterschied zwischen Interface und Vererbung und Sinn? Java Basics - Anfänger-Themen 5
G sinn von JList Java Basics - Anfänger-Themen 6
K Sinn von Interfaces Java Basics - Anfänger-Themen 10
C Erste Schritte Meldung: @SuppressWarnings? Java Basics - Anfänger-Themen 2
N SuppressWarnings: CallToThreadDumpStack Java Basics - Anfänger-Themen 4
N Generic clonen => eclipse empfiehlt @SuppressWarnings("unchecked") Java Basics - Anfänger-Themen 2
G Frage zu: @SuppressWarnings("unchecked") Java Basics - Anfänger-Themen 4
G @SuppressWarnings("serial") Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben