Błędy/ostrzeżenia

Strona preferencji Otwiera stronę preferencji Błędy/ostrzeżenia Java > Kompilator > Błędy/ostrzeżenia pozwala określić preferencje dotyczące ustawień błędów i ostrzeżeń.

Styl kodu

Opcja

Opis

Domyślnie

Niestatyczny dostęp do składowej static

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku dostępu do pola lub metody static za pomocą odbiornika wyrażenia. Odwołanie do składowej static powinno być kwalifikowane nazwą typu.

Ostrzeżenie

Pośredni dostęp do składowej static

Jeśli ta opcja jest włączona, kompilator zgłosi błąd lub ostrzeżenie w przypadku pośredniego dostępu do pola lub metody static. Pole static interfejsu powinno być kwalifikowane za pomocą nazwy typu deklarującego.

Ignorowanie

Niekwalifikowany dostęp do pola instancji

Jeśli ta opcja jest włączona, kompilator zgłosi błąd lub ostrzeżenie w przypadku niekwalifikowanego odwołania do pola (np. brak operatora this).

Ignorowanie

Nieudokumentowany pusty blok

Jeśli ta opcja jest włączona, kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania pustej instrukcji blokowej bez wyjaśniającego komentarza.

Ignorowanie

Dostęp do niedostępnej składowej typu obejmującego

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku emulacji dostępu do niedostępnej składowej typu obejmującego. Taki dostęp może wpływać na wydajność.

Ignorowanie

Metoda o nazwie konstruktora

Nadawanie metodzie nazwy konstruktora jest uznawane za zły styl programowania. Po włączeniu tej opcji kompilator zasygnalizuje taką sytuację jako błąd lub ostrzeżenie.

Ostrzeżenie

Przypisanie parametru

Przypisywanie wartości parametrowi uznaje się ogólnie za niewłaściwy sposób programowania. Po włączeniu tej opcji kompilator zasygnalizuje taką sytuację jako błąd lub ostrzeżenie.

Ignorowanie

Łańcuchy nieeksternalizowane

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku nieeksternalizowanego literału łańcucha (pozbawionego znacznika //$NON-NLS-<n>$) lub nieeksternalizowanych znaczników łańcucha nienależących do łańcucha.

Ignorowanie

Potencjalne problemy programistyczne

Klasa przekształcalna do postaci szeregowej bez identyfikatora serialVersionUID

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, gdy typ implementujący interfejs java.io.Serializable nie zawiera pola serialVersionUID.

Ostrzeżenie

Bezskuteczne przypisanie (na przykład: x = x)

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku bezskutecznego przypisania (np. x = x).

Ostrzeżenie

Możliwe przypadkowe przypisanie boolowskie (na przykład: if (a = b))

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania potencjalnie przypadkowego przypisania boolowskiego (np. if (a = b)).

Ignorowanie

Nieprawidłowe zakończenie bloku finally

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku nieprawidłowego zakończenia instrukcji finally (np. z instrukcją return).

Ostrzeżenie

Pusta instrukcja

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania pustej instrukcji (np. nadmiarowego średnika).

Ignorowanie

Użycie tablicy char w konkatenacji łańcucha

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku użycia wyrażenia char[] w konkatenacji łańcucha, np.

"hello" + new char[]{'w','o','r','l','d'}

Ostrzeżenie

Ukryte bloki catch

Niektóre bloki catch mogą ukrywać inne (lokalnie względem instrukcji try), na przykład:

try { throw new java.io.CharConversionException();
} catch (java.io.CharConversionException e) {
} catch (java.io.IOException e) {}

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku ukrytych bloków catch odpowiadających wyjątkom kontrolowanym.

Ostrzeżenie

Niedokładne dopasowanie typów dla argumentów vararg

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania niedokładnego dopasowania typów dla argumentów vararg.

Ostrzeżenie

Konwersje pakowania i wypakowywania

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania konwersji pakowania lub wypakowywania. Automatyczne pakowanie może mieć negatywny wpływ na wydajność.

Ignorowanie

Stała typu enum nieobjęta klauzulą 'switch'

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania instrukcji switch, która nie zawiera instrukcji case dla każdej stałej enum przywoływanego typu wyliczeniowego.

Ignorowanie

Nieosiągnięcie przypadku 'switch'

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania przypadku switch bez komendy break. Dozwolone są puste przypadki switch.

Ignorowanie

Odwołanie o wartości NULL

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania zmiennej lokalnej o wartości NULL, do której zostało wycofane odwołanie. Analiza jest stosunkowo restrykcyjna, ponieważ uwzględniane są wyłącznie przypadki wykazujące nieprawidłowości.

Ignorowanie

Przesłanianie i konflikty nazw

Deklaracja pola ukrywa inne pole lub inną zmienną

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli deklaracja pola ukrywa inne odziedziczone pole.

Ignorowanie

Deklaracja zmiennej lokalnej ukrywa inne pole lub inną zmienną

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli deklaracja zmiennej lokalnej ukrywa inne pole lub inną zmienną.

Ignorowanie

Uwzględnij parametry konstruktora lub metody ustawiającej

Po włączeniu tej opcji kompilator dodatkowo zgłosi błąd lub ostrzeżenie, jeśli parametr konstruktora lub metody ustawiającej ukrywa inne pole lub inną zmienną.

Wyłączone

Parametr typu ukrywa inny typ

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli na przykład parametr typu klasy wewnętrznej ukrywa typ zewnętrzny.

Ostrzeżenie

Przesłonięte metody, ale niewidoczne w pakiecie

Domyślna metoda pakietu nie jest widoczna w innym pakiecie i dlatego nie można jej przesłonić. Po włączeniu tej opcji kompilator zasygnalizuje taką sytuację jako błąd lub ostrzeżenie.

Ostrzeżenie

Konflikt metody interfejsu z chronioną metodą Object

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku, gdy interfejs definiuje metodę niezgodną z niedziedziczoną metodą klasy Object. Do momentu rozwiązania tego konfliktu takiego interfejsu nie można zaimplementować, na przykład:

interface I {
   int clone();
}

Ostrzeżenie

Nieaktualny i ograniczony interfejs API

Nieaktualny interfejs API

Po włączeniu tej opcji kompilator zasygnalizuje użycie nieaktualnego interfejsu API jako błąd lub ostrzeżenie.

Ostrzeżenie

Sygnalizuj użycie nieaktualnej funkcji API w nieaktualnym kodzie

Po włączeniu tej opcji kompilator zasygnalizuje użycie nieaktualnego interfejsu API w nieaktualnym kodzie. Istotność tego problemu kontroluje opcja Nieaktualny interfejs API.

Wyłączone

Sygnalizuj przesłanianie lub implementowanie nieaktualnej metody

Po włączeniu tej opcji kompilator zasygnalizuje przesłanianie lub implementowanie nieaktualnej metody. Istotność tego problemu kontroluje opcja Nieaktualny interfejs API.

Wyłączone

Zabronione odwołanie (reguły dostępu)

Po włączeniu tej opcji kompilator zasygnalizuje zabronione odwołanie określone w regułach dostępu.

Błąd

Niezalecane odwołanie (reguły dostępu)

Po włączeniu tej opcji kompilator zasygnalizuje niezalecane odwołanie określone w regułach dostępu.

Ostrzeżenie

Zbędny kod

Zmienna lokalna nie jest nigdy odczytywana

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli zadeklarowana zmienna lokalna nie jest wykorzystywana w swoim zasięgu.

Ostrzeżenie

Parametr nie jest nigdy odczytywany

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli zadeklarowany parametr nie jest nigdy używany w swoim zasięgu.

Ignorowanie

Sprawdź metody przesłaniające i implementujące

Po włączeniu tej opcji kompilator dodatkowo zgłosi błąd lub ostrzeżenie, jeśli zadeklarowany parametr nie jest nigdy używany w swoim zasięgu w metodach przesłaniających lub implementujących.

Wyłączone

Nieużywane instrukcje importowania

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku nieużywanego odwołania do instrukcji importu.

Ostrzeżenie

Nieużywane składowe lokalne lub private

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie, jeśli zadeklarowana składowa lokalna lub private nie jest nigdy używana wewnątrz tej samej jednostki.

Ostrzeżenie

Zbędna instrukcja else

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania zbędnej instrukcji else (np. "if (warunek) return; else doSomething();").

Ignorowanie

Zbędne rzutowanie lub zbędna operacja instanceof

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania zbędnego rzutowania lub zbędnej operacji instanceof (np. "if (object instanceof Object) return;").

Ignorowanie

Zbędna deklaracja zgłoszonego wyjątku kontrolowanego

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania zbędnej deklaracji zgłoszonego wyjątku.

Ignorowanie

Sprawdź metody przesłaniające i implementujące

Po włączeniu tej opcji kompilator dodatkowo zgłosi błąd lub ostrzeżenie w przypadku napotkania zbędnej deklaracji zgłoszonego wyjątku w metodach przesłaniających lub implementujących.

Wyłączone

Nieużywana etykieta break lub continue

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania nieobsługiwanej etykiety break lub continue.

Ostrzeżenie

Typy ogólne

Operacja na niekontrolowanym typie ogólnym

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania operacji na niekontrolowanym typie ogólnym.

Ostrzeżenie

Użycie typu surowego

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania zastosowania typu surowego (np. typu List zamiast typu List<String>).

Ignorowanie

Zadeklarowano parametr typu ogólnego z powiązaniem typu final

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania powiązania typów z udziałem typu final.

Ostrzeżenie

Adnotacje

Brak adnotacji @Override

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania metody przesłaniającej inną zaimplementowaną metodę bez adnotacji @Override.

Ignorowanie

Brak adnotacji @Deprecated

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania nieaktualnego typu bez dodatkowej adnotacji @Deprecated.

Ignorowanie

Adnotacja używana jako nadinterfejs

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania typu implementującego adnotację. Choć jest to możliwe, uważa się to za zły styl programowania.

Ostrzeżenie

Nieobsługiwane elementy ostrzeżeń w adnotacji @SuppressWarnings

Po włączeniu tej opcji kompilator zgłosi błąd lub ostrzeżenie w przypadku napotkania nieobsługiwanego elementu ostrzeżenia w adnotacji @SuppressWarnings.

Ostrzeżenie

Włącz adnotacje @SuppressWarnings

Po włączeniu tej opcji kompilator będzie przetwarzał adnotacje @SuppressWarnings.

Włączone

Pojęcia pokrewne

Widok Problemy
Szybka poprawka
Program budujący Java