Страницы

Поиск по вопросам

среда, 1 января 2020 г.

Стоит ли пользоваться такой аннотацией @SuppressLint, по подсказке Андроид Студио?

#android #android_studio


Или избегать, по возможности ?! Т.е., искать решения такие, чтобы в коде не появлялись
авто-вставки (над методами) типа @SuppressLint("ResourceAsColor") и т.п.
    


Ответы

Ответ 1



Если вы понимаете о чем вас предупреждают, и осознанно принимаете решение, что в данной ситуации вам нужно сделать именно так, как вы сделали, то ставьте аннотацию подавления. Если в принципе согласны, что отмеченный код "пахнет", но времени и желания прямо сейчас править нет, то оставьте все как есть. Это предупреждение будет мозолить глаза и, когда нибудь, вы не вытерпите и поправите. Надо понимать, что, как и любой инструмент статического анализа, Lint может выдавать ложно-положительные срабатывания (хоть и редко). Также помните, что большАя часть предупреждений касается Best Practics. Они совсем не обязательны для применения, но в большинстве случаев лучше их придерживаться. Пример ложно-положительного срабатывания, когда Lint сообщает об "ошибке", которой на самом деле нет

Ответ 2



Зависит от того, как вы используете LINT. Более того вы можеет настроить IDE и убирать орпеделенные проверки у LINTа, приоритет которых считаете низким и такие там есть, но.... Я считаю что такие аннотации должны сводится к минимуму, а если они используются то должны быть обоснованы. Некоторые из них приведут просто к крашу, например @SuppressLint («NewApi») это по сути игнор minSdk и это очень плохо. А когда вы ставите такую аннотацию вы закрываете на это глаза и ещё inspection нормально не сделать. У вас ситуация очень схожа. @SuppressLint("ResourceAsColor") Означачет, что есть методы которые принимают факическиое RGB, и вы их там хардкодите и это очень плохо со стороны разработки. 1.Такой код может привести к падению, если в сете указаны неверные параметры. 2.Такой код становится не адаптивным к изменениям, если у вас есть 3+ места, вам придется править ручками и сразу смотрите пункт 1, возможность ошибки, возможность падения. 3.Такой код не поддается изменениям в стилях в приложения. Что иногда критично. Решение: Перед тем как сетить цвет. Вам нужно явно забрать из ресурсов. getResources (). getColor (resID)

Комментариев нет:

Отправить комментарий