报告 instanceof 表达式,其中检查的表达式的类/接口类型既不扩展/实现 instanceof 表达式右侧的类/接口类型,也没有进行上述操作的子类。

尽管它可以用于库代码,但此类构造很可能是错误的,因为项目中声明的任何类的任何实例都无法通过此 instanceof 测试。

示例:


  class Foo { }

  interface Bar { }
  
  class Main {
      void test(Foo f, Bar b) {
          if (f instanceof Bar) { // 问题
              System.out.println("fail");
          }
          if (b instanceof Foo) { // 问题
              System.out.println("fail");
          }
      }
  }