Я использовал метод 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