Я використовую @SuppressWarnings("unchecked")
і в @SuppressWarnings("null")
основному вище методи, щоб дозволити збір коду без будь-яких попереджень, але я сумніваюся. Знайшли це питання щодо Стакковержа . Джон Скіт написав на нього відповідь, яку мені здається інтригуючою.
Згідно з ним,
Іноді Java generics просто не дозволяє робити те, що ви хочете, і вам потрібно ефективно сказати компілятору, що те, що ви робите, дійсно буде законним під час виконання.
Але що робити, якщо є ймовірність, що викид буде кинутий? Чи не придушення попереджень є поганою ідеєю? Чи не слід мені знати про місця, де можуть виникнути проблеми?
Крім того, що робити, якщо хтось інший змінить мій код пізніше та додасть сумнівну функціональність, не видаляючи SuppressWarnings? Як цього можна уникнути та / або існує якась інша альтернатива цьому?
Чи слід використовувати @SuppressWarnings("unchecked")
і @SuppressWarnings("null")
?
Оновлення №1
Що стосується неперевірених підказів типу, згідно з цією відповіддю (на яку @gnat вказував у коментарях нижче), придушення цих попереджень є необхідним.
Багато незамінних бібліотек Java ніколи не оновлювались, щоб усунути потребу в небезпечних наборах передач. Придушення цих попереджень необхідно, щоб інші важливіші попередження були помічені та виправлені.
У разі придушення інших попереджень, все ще в трохи сірій зоні.
Оновлення №2
Відповідно до Документів Oracle (також згадуваних у деяких відповідях нижче):
Що стосується стилю, програмісти завжди повинні використовувати цю примітку на найбільш глибоко вкладеному елементі там, де це ефективно. Якщо ви хочете придушити попередження певним методом, вам слід анотувати цей метод, а не його клас.