Size: a a a

Javanese Questions

2018 June 02

NI

Nikita Ivanov in Javanese Questions
Ещё тут ошибка в if
источник

NI

Nikita Ivanov in Javanese Questions
И игра должна принять в себя двух игроков
источник

NI

Nikita Ivanov in Javanese Questions
Да и и даже не игроков, а скорее их значения игровые
источник
2018 June 08

ИМ

Игорь Марков in Javanese Questions
Привет!
Может кто-нибудь сталкивался с deprecated методами и способами убрать эти ворнинги.
Пишу
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
           int result = audioManager.abandonAudioFocusRequest(...) // new method, it is okay, but works only from 26 API
           if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { ... }
else {
           @SuppressWarnings("deprecation")
           int result = audioManager.abandonAudioFocus(...) // deprecated method, gives warning, use annotation to get rid of
           if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { ... }
}
Вынужден вводить две декларации переменной result чтобы применить аннотацию, т.к. метод большой и не хочется ее применять ко всему методу, а просто к вызову deprecated метода ее применить нельзя, можно к декларации локальной переменной например (собственно Int result ...)
Это походу единственный способ когда и новый метод в рантайме выбираем и Lint доволен и можем использовать результат операции. Может кто знает не столь verbose способ?
источник

QH

Quantum Harmonizer in Javanese Questions
Игорь Марков
Привет!
Может кто-нибудь сталкивался с deprecated методами и способами убрать эти ворнинги.
Пишу
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
           int result = audioManager.abandonAudioFocusRequest(...) // new method, it is okay, but works only from 26 API
           if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { ... }
else {
           @SuppressWarnings("deprecation")
           int result = audioManager.abandonAudioFocus(...) // deprecated method, gives warning, use annotation to get rid of
           if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { ... }
}
Вынужден вводить две декларации переменной result чтобы применить аннотацию, т.к. метод большой и не хочется ее применять ко всему методу, а просто к вызову deprecated метода ее применить нельзя, можно к декларации локальной переменной например (собственно Int result ...)
Это походу единственный способ когда и новый метод в рантайме выбираем и Lint доволен и можем использовать результат операции. Может кто знает не столь verbose способ?
вынести код с @Suppress в класс, который редко попадается на глаза 😏
источник

ИМ

Игорь Марков in Javanese Questions
и применить аннотацию ко всему классу? Минус подхода в том что этот класс будет солянка сборная
источник

ИМ

Игорь Марков in Javanese Questions
т.е. там будет все
источник

QH

Quantum Harmonizer in Javanese Questions
Игорь Марков
и применить аннотацию ко всему классу? Минус подхода в том что этот класс будет солянка сборная
Не, аннотации тут применены хорошо, их так лучше и оставить.
источник

ИМ

Игорь Марков in Javanese Questions
вы про их использование строго по месту? Это да, но что делать с двойной декларацией result?
источник

QH

Quantum Harmonizer in Javanese Questions
Игорь Марков
вы про их использование строго по месту? Это да, но что делать с двойной декларацией result?
А что с ней?
источник

ИМ

Игорь Марков in Javanese Questions
ну два раза в if/else объявляем
источник

QH

Quantum Harmonizer in Javanese Questions
Игорь Марков
ну два раза в if/else объявляем
ну да. Это как-то мешает?
источник

QH

Quantum Harmonizer in Javanese Questions
а, допёр
источник

ИМ

Игорь Марков in Javanese Questions
это нет, мешает код if (result == GRANTED) {...}, тоже два раза
источник

ИМ

Игорь Марков in Javanese Questions
а там может быть много
источник

QH

Quantum Harmonizer in Javanese Questions
можно же
final int result;
if (...) { result = ...; } else { result = ...; }
if (result == ...) { ... }
источник

ИМ

Игорь Марков in Javanese Questions
не, не прокатывает- аннотация не позволена
источник

ИМ

Игорь Марков in Javanese Questions
в else
источник

QH

Quantum Harmonizer in Javanese Questions
Игорь Марков
не, не прокатывает- аннотация не позволена
тогда вынеси вызов abandonAudioFocus(Request)(...) в отдельный метод, на котором будет @Suppress
источник

ИМ

Игорь Марков in Javanese Questions
да, наверное тут единственный вариант, спасибо
источник