Java中instanceof关键字和isInstance()方法的区别是什么

互联网 19-3-20
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中instanceof关键字和isInstance()方法的区别是什么的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: isInstance()
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java开发入门基础教程的分享

相关资讯