Я пишу приложение для Android, которое использует AdapterView. В классе AdapterView есть несколько вызовов IsInFilterMode()
, которые просто являются одной строкой, которая возвращает false. Я не могу переопределить функцию, поэтому я не могу понять, почему эта функция существует, если она возвращает false. В описании говорится, что он возвращает true, если он находится в режиме фильтра. Вот определение IsInFilterMode()
:Зачем возвращать false в Java?
/**
* Indicates whether this view is in filter mode. Filter mode can for instance
* be enabled by a user when typing on the keyboard.
*
* @return True if the view is in filter mode, false otherwise.
*/
boolean isInFilterMode() {
return false;
}
Я относительно новое для Java поэтому, возможно, я пропускаю что-то, что является типичным для Java исходного кода здесь? Есть ли другой код, который был бы запутан от меня?
Почему вы не можете переопределить метод? Класс отмечен как окончательный? Похоже на значение по умолчанию, которое вы ожидаете переопределить при расширении этого класса. – duffymo
Значение возвращаемого значения по умолчанию - «false», но пользовательские реализации (дочерние элементы «AdapterView») могут переопределять 'isInFilterMode()' в соответствии с их возможностями. По умолчанию «AdapterView» просто не поддерживает режим фильтрации. – GiantTree
А, возможно, я был нобом. Android Studio пометила мое переопределение как не переопределяющее что-либо из суперкласса. Я пытался переопределить его из ArrayAdapter, а не из AdapterView. Виноват! Неудивительно, почему я не нашел ничего в Google. Ранним утром в понедельник мой мозг не работает. Спасибо за помощь! – LukeP