Strona preferencji Java > Kompilator > Błędy/ostrzeżenia pozwala określić preferencje dotyczące ustawień błędów i ostrzeżeń.
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 |
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 |
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 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 |
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 |
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 |
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 |