Я использовал метод setId
класса View
. Согласно этому методу
public void setId(@IdRes int id) // This will accept resource id
Когда я попытался использовать этот метод с некоторым жестко закодированным значением int
(скажем, 100), тогда этот метод начнет выдавать правильное предупреждение, которое ожидается -
actionButton.setId(100);
Ожидаемый ресурс идентификатора типа.
Но когда я преобразовал это hardcoded значение в метод и никогда не определял, что этот метод вернет @IdRes
, Warning будет молчать.
private int getViewId() {
return 100;
}
Вызов метода для установки идентификатора.
actionButton.setId(getViewId());
Разве оба они одинаковы. Hardcoded int
и a int
возвращаются из этого метода. Итак, почему в одном случае метод бросает предупреждение, а в другом - молчит.
Ради меня попробовал с StringRes
, но я получаю предупреждение в обоих случаях.
private void setMyString(@StringRes int resourceString) {}
Предупреждение в обоих случаях -
setMyString(1);
setMyString(getStringId()); getStringId returns int value