java instance关键字_Java中instanceof关键字和isInstance()方法的区别是什么
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()方法的区别是什么相关推荐
- java中关键字_java中的关键字是什么?
展开全部 访问控制: private 私有的 protected 受保护的 public 公共的 类.方法和变量修饰符 abstract 声明抽象 class 类 extends 扩允,继承 fina ...
- java 中关键字_Java中的关键字
Java中的关键字一共有53个,包含常用的51个关键字和2个保留字 1. 保留字 2个:预留的关键字,即Java中未被使用到的关键字 const 保留字,即预留的关键字 goto 保留字,即预留的 ...
- java outer关键字_java中的关键字
abstract : 表明类或者成员方法具有抽象属性 assert : 断言,用来进行程序调试 boolean :基本数据类型之一,声明布尔类型的关键字 break :提前跳出一个块 byte :基本 ...
- java final定义_Java中final关键字的用法
final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如此,final还可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中 ...
- java 文件通配符_Java中泛型通配符的使用方法示例
本文实例讲述了Java中泛型通配符的使用方法.分享给大家供大家参考,具体如下: 一 点睛 引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数. 语法如下: 泛型类名 extend ...
- java thread join()_Java中Thread.join()的使用方法
概要 本文分三个部分对thread.join()进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() 的示 ...
- java 类型转换方法_Java中的实用类型转换的方法
Java中的实用类型转换的方法 1, 类型转换 JAVA中常用数据类型转换函数 虽然都能在JAVA API中找到,整理一下做个备份. string->byte Byte ...
- java对象数组_Java中对象数组的使用方法详解
本文实例讲述了Java中对象数组的使用方法.分享给大家供大家参考,具体如下: 一 点睛 对象可以用数组来存放,通过下面两个步骤来实现. 1 声明以类为数据类型的数组变量,并用new分配内存空间给数组. ...
- java 数组赋值_java中为数组赋值的方法
java中为数组赋值的方法 发布时间:2020-06-25 14:31:36 来源:亿速云 阅读:184 作者:Leah 这期内容当中小编将会给大家带来有关java中为数组赋值的方法,文章内容丰富且以 ...
最新文章
- MyBatis基础-CRUD
- HTML5适应旧的浏览器的使用总结
- 奇思妙想——我心中的智能自行车
- python中矩阵的表示方法_关于Python表示矩阵的方法详解
- CF1365G Secure Password(构造,交互,二进制分组)
- 性能优化(8):使用javascript缓存查询结果
- RDD和DataFrame和DataSet三者间的区别
- Python中报错:系统找不到指定的文件;浏览器似乎在未打开之前就已经退出解决方法...
- windows文件自动同步
- 【BP数据预测】基于matlab狼群算法优化BP神经网络数据预测【含Matlab源码 658期】
- pycharm 输入法光标跟随
- 分享15款漂亮的WordPress企业主题
- 云空间插html音乐,【详细教程】如何在空间中引用网易云音乐
- module (模块化)
- 一枝独秀 BugkuCTF-杂项-MISC
- NFT 的洗盘交易,真的赚钱吗?
- 伪原创视频需要改什么 改视频md5的软件
- SQL常用查询语法整理
- 全面详解Android实现多线程的几种方式(史上最全,最详细)
- python提供数字类型包括_Python 语言提供的 3 个基本数字类型是( )_学小易找答案...
热门文章
- 24点游戏c语言程序代码,C语言实现24点游戏源代码
- 三星android11推送,三星国行S10系列正式推送One UI 3正式版,基于安卓11打造
- GP学习(九)—Working with geodatabases and the geoprocessor
- php text(),PHP+TEXT留言本(一)
- Java 算法 寂寞的数
- Java 蓝桥杯 数列特征
- 新项目jenkis配置
- 封装连接mysql数据库_封装连接mysql数据库
- seaborn单变量/双变量/多变量绘图
- flutter-dart