为什么 return 在 Java 中为假?

Why return false in Java?

我正在编写一个使用 AdapterView 的 Android 应用程序。 AdapterView class 中有多个对 IsInFilterMode() 的调用,这只是一个 returns false 的单行函数。我不能重写这个函数,所以我一辈子都弄不明白为什么这个函数存在,如果它只是 returns false。描述说它 returns 如果它处于过滤模式则为真。下面是 IsInFilterMode() 的定义:

 /**
 * 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 源代码的典型内容?是否有其他代码被我混淆了?

首先,缺少可见性修饰符通常被称为 package-private。它在可见性等级上介于 protectedprivate 之间 - 只有同一包内的其他 类 可以覆盖包私有方法。有关详细信息,请参阅 Controlling Access to members of a Class

Android 框架经常使用这个 - 它允许框架覆盖这些方法,而不允许最终用户(Android 开发人员)做同样的事情,并可能干扰框架的运作方式。

在这种情况下,AdapterViews 的默认设置是根本不支持过滤模式。

一些 AdapterView sub类 确实支持它。例如,AbsListView 及其后代。在 AbsListView 的情况下,此方法 returns 跟踪列表是否实际处于筛选模式的内部 属性 的值。