darange
  • instanceof只能用于对象的判断,不能用于基本类型的判断,以下代码会编译不通过
\'A\' instanceof Character
  • instanceof特有的规则:若左操作数是null,结果就直接返回false,不再运算右操作数是什么类
null instanceof String
  • instanceof操作符的左右操作数必须有继承或实现关系,否则编译会失败,以下代码编译不通过
new Data() instanceof String
  • 注意泛型的情况
    class GenericClass<T>{
        public boolean isDataInstance(T t){
            return t instanceof Date;
        }
    }

    boolean a = new GenericClass<String>().isDataInstance("test");//false
    //T是个String类型,与Date之间没有继承或实现关系,为什么\'\'t instanceof Date\'\'会编译通过呢?那是因为Java的泛型是为编码服务的,在编译成字节码时,T已经是Object类型了,传递的实参是String类型,也就是说T的表面类型是Object,实际类型是String,那\'\'t instanceof Date\'\'这句话就等价于\'\'Object instance ofDate\'\'了,所以返回false就很正常了

分类:

技术点:

相关文章:

  • 2021-06-01
  • 2021-11-07
  • 2021-08-26
  • 2021-06-23
  • 2021-11-22
  • 2022-02-24
  • 2021-05-27
猜你喜欢
  • 2022-12-23
  • 2021-11-20
  • 2022-01-06
  • 2021-06-20
  • 2021-11-10
  • 2022-01-10
  • 2022-12-23
相关资源
相似解决方案