首页 > 编程语言 > 详细

Java中instanceof注意的地方

时间:2020-01-03 20:10:01      阅读:95      评论:0      收藏:0      [点我收藏+]
  • 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就很正常了

Java中instanceof注意的地方

原文:https://www.cnblogs.com/darange/p/12145986.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!