栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中instanceof的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中instanceof的使用

java中instanceof的使用
  • instanceof的定义

    instanceof用来判断左边 对象 是不是右边类的直接 实例对象子类实例对象

    此处应注意强调字体,表达式左边需要是类实例对象,右边则是类名。

下面是代码实现

Collection list=new ArrayList();				//Collection是集合接口
  • instanceof案例
            Collection list=new ArrayList();
            System.out.println(list instanceof ArrayList);                     //true
            System.out.println(list instanceof Collection);                    //true
            System.out.println(list instanceof Object);                        //true     
            System.out.println(list instanceof LinkedList);                    //false
    

    Object类是所有对象的父类,所以代码第三行结果为true,因为list并不是Linkedlist的直接或间接实例对象,故结果为false

  • 使用场景

    instanceof多使用在向下转型 1 中,由于向上转型后,父类引用指向子类对象,该对象会失去一些子类独有的方法,而进行强制转换时需要判断一下能否进行转换,instanceof就能解决问题。

    向下转型还经常出现在多态中。

     Collection list=new ArrayList();
            list.add("java");
            if(list instanceof ArrayList)
            {
                System.out.println(list.get(0));								//1
                System.out.println(((ArrayList) list).get(0));                  //2
            }
    
    // [java]
    

    代码1报错,因为向下转型后丢失了一些子类特有方法,所以get方法进行报错

    代码2执行成功,且输出结果为[java],这里就体现出了instanceof的作用,通过判断,如果结果为true则会执行if语句,从而进行强制转换调用子类方法


  1. java语言中有向上转型和向下转型,向上转型指父类引用指向子类对象,向下转型需要用到强制转换,关于该详细信息请自己搜索相关资料 ↩︎

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号