Я работаю с потоками и использую thread.stop (); чтобы закончить поток для временного решения проблемы, которую я имел. Я понимаю, что он устарел и не должен использоваться, но как мне подавить предупреждение компилятора только для этой одной строки? Я хочу продолжать получать устарелые предупреждения для остальной части моего класса, только не эту строку. Я попытался использовать приведенный ниже код и получил ошибку «Аннотации здесь не разрешены» в строке @SupressWarnings («deprecation»). Как правильно исправить эту ошибку?

class Handeler {
   private Thread thread;
   .....
   void stopThread() {
      if(thread!=null && thread.isAlive()) {                 
         @SuppressWarnings("deprecation")
            thread.stop();
      }
   }
}
1
Lazerpent 29 Май 2019 в 14:36

2 ответа

Лучший ответ

Вместо этого вы можете аннотировать метод:

class Handeler {
   private Thread thread;
   .....
   @SuppressWarnings("deprecation")
   void stopThread() {
      if(thread!=null && thread.isAlive()) {                 
            thread.stop();
      }
   }
}

Эта аннотация на одной строке не допускается.

2
Uwe Allner 29 Май 2019 в 11:38

Вы можете подавить предупреждение, используя комментарий:

void stopThread() {
      if(thread!=null && thread.isAlive()) {

          //noinspection deprecation
          thread.stop();
      }
}
0
y.bedrov 29 Май 2019 в 12:59