2011-09-13 11 views

Odpowiedz

92

@SuppressWarnings adnotacja wyłącza niektóre ostrzeżenia kompilatora. W tym przypadku ostrzeżenia o nieaktualnych kod ("deprecation") i nieużywanych zmiennych lokalnych lub niewykorzystanych metod prywatnych ("unused"). This article explains the possible values.

+0

Dobra odpowiedź @nfechener –

3

W języku Java, @SuppressWarnings służą do ograniczenia kompilatora do wyświetlania określonego ostrzeżenia na ekranie konsoli.

Np

@SuppressWarnings("unused") 
CheckBox transferredField = new CheckBox("is transferred"); 

jeśli nie używam transferredField zmienną w moim kodu wówczas Eclipse IDE nie pokazywać ostrzeżenia, że ​​nie są przy użyciu tej zmiennej transferredField w kodzie.

-3

@SuppressWarnings("unused") i inni próbowałem, ale to nie działa, a ja zawsze używać metody powiedzieć Gradle w tym projekcie do

lintOptions{ 
     checkReleaseBuilds false 
     abortOnError false; 
     disable 'deprecation' 
    } 

    tasks.withType(JavaCompile) { 
     options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" 
    } 
+0

Proszę nie wyłączać ostrzeżenia w całym projekcie. Wyłączenie ostrzeżenia powinno być ograniczone do najbardziej szczegółowego poziomu, na którym wiesz, dlaczego w twoim przypadku można zignorować. Ukrywanie ich dla całego projektu ukryje również uzasadnione obawy, które powinieneś rozważyć, zamiast je ignorować. –

1

jeszcze jedno: można nie tylko dodać je inline, ale także annotate methods. F.ex.

@Override 
@SuppressWarnings("deprecation") 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 
} 

Jednak zaleca się, aby skorzystać z najmniejszą możliwą

zakresu Prawdę stylu, programiści powinni zawsze używać tej adnotacji na najgłębiej zagnieżdżonego elementu, w którym jest ona skuteczna. Jeśli chcesz pominąć ostrzeżenie w określonej metodzie, powinieneś opisać tę metodę, a nie jej klasę.