instanceof关键字和isInstance()方法都用于检查对象的类,那么它们之间有什么区别?下面本篇文章就来带大家了解一下instanceof关键字和isInstance()方法之间的区别,希望对大家有所帮助。

instanceof关键字和isInstance()方法都是用于检查对象的类,都返回一个布尔值。但是当我们想要动态检查对象的类时,主要区别就出现了。在这种情况下,isInstance()方法将起作用,而无法通过instanceof运算符来实现这一点。

下面我们通过示例来具体看看instanceof关键字和isInstance()方法之间的区别。

使用instanceof关键字来检查对象的类public class Test

{

public static void main(String[] args)

{

Integer i = new Integer(5);

// 当i是Integer类的实例时,输出true

System.out.println(i instanceof Integer);

}

}

输出:true

现在,如果我们想在运行时检查对象的类,那么我们必须使用isInstance()方法。public class Test

{

// 此方法告诉我们对象是否是以字符串“c”形式传递名称的类实例。

public static boolean fun(Object obj, String c)

throws ClassNotFoundException

{

return Class.forName(c).isInstance(obj);

}

public static void main(String[] args)

throws ClassNotFoundException

{

Integer i = new Integer(5);

// 当i是Integer类的实例时,输出true

boolean b = fun(i, "java.lang.Integer");

// 因为i不是String类的实例,所以输出false

boolean b1 = fun(i, "java.lang.String");

//当integer类扩展number类时,如果我也是number类的实例,则输出true。

boolean b2 = fun(i, "java.lang.Number");

System.out.println(b);

System.out.println(b1);

System.out.println(b2);

}

}

输出:true

false

true

注:如果我们使用未实例化的其他类检查对象,则instanceof关键字会抛出编译时错误(不兼容的条件操作数类型)。public class Test

{

public static void main(String[] args)

{

Integer i = new Integer(5);

//报错,因为类型不兼容:Integer不能转换为String

System.out.println(i instanceof String);

}

}

输出:demo.java:10: error: incompatible types: Integer cannot be converted to String

System.out.println(i instanceof String);

^

1 error

相关视频教程推荐:《Java教程》

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

java instance关键字_Java中instanceof关键字和isInstance()方法的区别是什么相关推荐

  1. java中关键字_java中的关键字是什么?

    展开全部 访问控制: private 私有的 protected 受保护的 public 公共的 类.方法和变量修饰符 abstract 声明抽象 class 类 extends 扩允,继承 fina ...

  2. java 中关键字_Java中的关键字

    Java中的关键字一共有53个,包含常用的51个关键字和2个保留字 1.   保留字 2个:预留的关键字,即Java中未被使用到的关键字 const 保留字,即预留的关键字 goto 保留字,即预留的 ...

  3. java outer关键字_java中的关键字

    abstract : 表明类或者成员方法具有抽象属性 assert : 断言,用来进行程序调试 boolean :基本数据类型之一,声明布尔类型的关键字 break :提前跳出一个块 byte :基本 ...

  4. java final定义_Java中final关键字的用法

    final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如此,final还可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中 ...

  5. java 文件通配符_Java中泛型通配符的使用方法示例

    本文实例讲述了Java中泛型通配符的使用方法.分享给大家供大家参考,具体如下: 一 点睛 引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数. 语法如下: 泛型类名 extend ...

  6. java thread join()_Java中Thread.join()的使用方法

    概要 本文分三个部分对thread.join()进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() 的示 ...

  7. java 类型转换方法_Java中的实用类型转换的方法

    Java中的实用类型转换的方法 1,              类型转换 JAVA中常用数据类型转换函数 虽然都能在JAVA API中找到,整理一下做个备份. string->byte Byte ...

  8. java对象数组_Java中对象数组的使用方法详解

    本文实例讲述了Java中对象数组的使用方法.分享给大家供大家参考,具体如下: 一 点睛 对象可以用数组来存放,通过下面两个步骤来实现. 1 声明以类为数据类型的数组变量,并用new分配内存空间给数组. ...

  9. java 数组赋值_java中为数组赋值的方法

    java中为数组赋值的方法 发布时间:2020-06-25 14:31:36 来源:亿速云 阅读:184 作者:Leah 这期内容当中小编将会给大家带来有关java中为数组赋值的方法,文章内容丰富且以 ...

最新文章

  1. MyBatis基础-CRUD
  2. HTML5适应旧的浏览器的使用总结
  3. 奇思妙想——我心中的智能自行车
  4. python中矩阵的表示方法_关于Python表示矩阵的方法详解
  5. CF1365G Secure Password(构造,交互,二进制分组)
  6. 性能优化(8):使用javascript缓存查询结果
  7. RDD和DataFrame和DataSet三者间的区别
  8. Python中报错:系统找不到指定的文件;浏览器似乎在未打开之前就已经退出解决方法...
  9. windows文件自动同步
  10. 【BP数据预测】基于matlab狼群算法优化BP神经网络数据预测【含Matlab源码 658期】
  11. pycharm 输入法光标跟随
  12. 分享15款漂亮的WordPress企业主题
  13. 云空间插html音乐,【详细教程】如何在空间中引用网易云音乐
  14. module (模块化)
  15. 一枝独秀 BugkuCTF-杂项-MISC
  16. NFT 的洗盘交易,真的赚钱吗?
  17. 伪原创视频需要改什么 改视频md5的软件
  18. SQL常用查询语法整理
  19. 全面详解Android实现多线程的几种方式(史上最全,最详细)
  20. python提供数字类型包括_Python 语言提供的 3 个基本数字类型是( )_学小易找答案...

热门文章

  1. 24点游戏c语言程序代码,C语言实现24点游戏源代码
  2. 三星android11推送,三星国行S10系列正式推送One UI 3正式版,基于安卓11打造
  3. GP学习(九)—Working with geodatabases and the geoprocessor
  4. php text(),PHP+TEXT留言本(一)
  5. Java 算法 寂寞的数
  6. Java 蓝桥杯 数列特征
  7. 新项目jenkis配置
  8. 封装连接mysql数据库_封装连接mysql数据库
  9. seaborn单变量/双变量/多变量绘图
  10. flutter-dart