Nie rozumiem tej funkcji Java. Wiem, że to ułatwia kodowanie, a czasem wygląda ładniej, ale jakie jest rzeczywiste użycie tego? Wręcz przeciwnie, wydaje mi się, że lepiej jest wyświetlać ostrzeżenia, ponieważ w przyszłości każdy może je odnieść przed wprowadzeniem modyfikacji kodu. Czy to @SuppressWarnings zwiększa wydajność uzupełniającą LUB czy jest to zgodne z normami kodowania?Co to jest użycie @SuppressWarnings
Odpowiedz
Inne odpowiedzi już wyjaśniono przypadków użycia z @SuppressWarnings
dużo, ale chcę podkreślić punkt że czasami koniecznie musisz użyć @SuppressWarnings
przezwyciężyć ograniczenia języka samego, iw tych przypadkach stosowania @SuppressWarnings
jest całkowicie legalny .
W innych przypadkach użycie @SuppressWarnings
można uznać za wątpliwe, ponieważ w takich przypadkach zawsze można pozbyć się ostrzeżeń, zmieniając kod (choć oczywiście nie zawsze jest to akceptowalne).
Oto kilka typowych przypadków, kiedy absolutnie nie może pozbyć się ostrzeżenia bez @SuppressWarnings
:
- wykonawcze tablicę oparciem kolekcji generycznych (ponieważ nie można stworzyć ogólną tablicę)
Map
z klas ich implementacje (ponieważ nie można przypisać różnych wartości parametru rodzajowego do różnych wejść na mapę)
Rzeczywistym zastosowaniem jest wyłączenie ostrzeżeń. to jest to! Nic mniej, nic więcej. Nie sądzę, że ma to wpływ na wydajność kompilacji, ale zdecydowanie nie działa w czasie.
Jeśli chodzi o starszy kod, który nie obsługuje generycznych (Java < = 1.4), jest to jedyny skuteczny sposób na pozbycie się rzucanych ostrzeżeń.
Podczas programowania należy uważać na ostrzeżenia kompilatora iw najlepszym przypadku skompilować swój kod bez ostrzeżeń (i oczywiście błędów).
Czasami jednak nie można pozbyć się ostrzeżenia i WIEM, że kod jest poprawny lub nie można go zmienić. Wtedy nie chcesz, aby za każdym razem niepokoił Cię kompilator, że coś jest nie tak.
Można go więc powstrzymać za pomocą wspomnianego polecenia.
Użycie SuppressWarnings
ma być używane podczas kompilacji (tak, tylko kompilator wie, co zrobić, gdy widzi adnotację SuppressWarnings
).
W JavaDoc stany:
The set of warnings that are to be suppressed by the compiler in the annotated element. Duplicate names are permitted. The second and successive occurrences of a name are ignored. The presence of unrecognized warning names is not an error: Compilers must ignore any warning names they do not recognize. They are, however, free to emit a warning if an annotation contains an unrecognized warning name.
Istnieje kilka powodów, dla korzystania @SuppressWarnings
ale jednym z najbardziej użytecznych przypadków są:
uwzględniając istniejący projekt z tysiącami ostrzeżeń. Chcesz, aby zespół zajął się teraz ostrzeżeniami, ale nie masz czasu na naprawę wszystkich ostrzeżeń.
Adnotacja umożliwia stłumienie niektórych ostrzeżeń, których nie można szybko naprawić i uzyskać "czystą" bazę.
Ta czysta baza jest niezbędna, ponieważ nikt nie będzie bał się sprawdzać kodu z ostrzeżeniami, gdy są ich tysiące, ale będą się bali, gdy baza kodów będzie wolna od ostrzeżeń, a wszyscy pozostali w zespole natychmiast zobaczą, kiedy ktoś jest sprawdzanie kodu z 2 ostrzeżeniami.
- Korzystasz z bibliotek stron trzecich i dlatego denerwują Cię ostrzeżenia, których nie możesz naprawić, z wyjątkiem zmiany kodu lib, czego nie chcesz w większości przypadków.
Moim zdaniem pierwszy powód jest jednym z najlepszych przypadków użycia dla @SuppressWarnings
.
- 1. Co to jest SuppressWarnings ("odznaczone") w Javie?
- 2. Co to jest użycie Assert.Equals?
- 3. Co to jest @SuppressWarnings ("wycofanie") i ("nieużywane") w systemie Android?
- 4. Co to jest dobre użycie operatora is-
- 5. Co to jest użycie data-role = "fieldcontain"?
- 6. Co to jest użycie e.consume() w java
- 7. Co to jest użycie stałego obiektu związku?
- 8. Co to jest poprawne użycie dla Response.Redirect ("SomeURL", false)?
- 9. Co to jest użycie właściwości AccessibleRole w formancie użytkownika?
- 10. Co to są podzielniki i kiedy ich użycie jest konieczne?
- 11. Co to jest użycie folderów values-v11 i values-v14?
- 12. Co to jest użycie argumentu ownProps w mapStateToProps i mapDispatchToProps?
- 13. Co to jest użycie funkcji c_str W języku C++
- 14. Co to jest użycie deskryptora pliku 255 w procesie bash
- 15. Co to jest DNVM?
- 16. Co to jest Serializable? Co to znaczy?
- 17. Co to jest "usuń to"?
- 18. Co to jest idiom programowania?
- 19. Co to jest Pagel?
- 20. Co to jest _GLOBAL_OFFSET_TABLE?
- 21. Co to jest "android.R.layout.simple_list_item_1"?
- 22. Co to jest DetailsView.EnableModelValidation?
- 23. Co to jest NSPathStore2?
- 24. Co to jest czasownik = "*"?
- 25. Co to jest Postgresql_psycopg2?
- 26. Co to jest ?
- 27. co to jest .netrwhist?
- 28. co to jest Microsoft.Practices.EnterpriseLibrary.Data
- 29. Co to jest CGVector?
- 30. Co to jest $ {project.licensePath}?
'SuppressWarnings' są używane nie tylko do obsługi generycznych programów lub wysyłania ostrzeżeń. –
kto mówi, że są :)? –
Ponownie przeczytaj swój wpis. –