`

【转】instanceof和isInstance(Object obj) 和isAssignableFrom(Class cls)的区别和联系

阅读更多
编程的时候可能会遇到一个不知道它属于哪个类的对象,我们可以用下列运算符或者方法来判断。

instanceof是运算符只被用于对象引用变量,检查左边的被测试对象是不是右边类或接口的实例化。如果被测对象是null值,则测试结果总是false。
      String str = new String("测试");
      System.out.println(str instanceof String);
      //输出true。
isInstance(Object obj)方法,这个方法与instanceof等价,其中obj是被测试的对象,如果obj是调用这个方法的class或接口的实例,则返回true。
      String str = new String("测试");
      System.out.println(String.class.isInstance(str));
      //输出true。
isAssignableFrom(Class cls)方法,如果调用这个方法的class或接口与参数cls表示的类或接口相同,或者是参数cls表示的类或接口的父类,则返回true。
      System.out.println(String.class.isAssignableFrom(Object.class)); 
      System.out.println(Object.class.isAssignableFrom(String.class));
      //其中第一个输出false,第二个输出true。
分享到:
评论

相关推荐

    详谈Java中instanceof和isInstance的区别

    在Java编程语言中,`instanceof` 和 `Class.isInstance()` 都是用来判断对象是否属于特定类型的工具,但它们之间存在一些微妙的区别。下面将详细解释这两种操作符的用法和差异。 首先,`instanceof` 关键字是Java...

    判断类的缓存大小

    本文将深入探讨如何通过Java内置的关键字`instanceof`以及类方法`isInstance(Object obj)`和`isAssignableFrom(Class<?> cls)`来判断类的缓存大小及其相关知识点。 #### `instanceof`关键字 `instanceof`关键字...

    JS中typeof与instanceof的区别

    使用 typeof 和 instanceof 还有其他一些区别,例如 alert(typeof(window)) 会得 object,但 window 不是一个 object 类型的对象,而是一个 Window 对象。 typeof 和 instanceof 都是 JavaScript 中的基本运算符,...

    Damaer#Coding#instanceof用法详解1

    1. instanceof关键字 2. isInstance()方法 3. instanceof,isInstance,isAssignableFrom区别是什

    向下转型和instanceof运算符的应用.pdf

    在Java中,其语法是`object instanceof ClassName`,而在Delphi中,虽然没有直接的`instanceof`关键字,但可以通过类型转换和异常处理来达到类似的效果。如果对象确实属于指定的类,`instanceof`返回`true`,否则...

    instanceof关键字.md

    `instanceof`运算的结果是一个布尔值,如果是`true`表示`obj`确实是`Class`的实例或者是其子类的实例,否则返回`false`。 #### 二、使用规则 1. **引用类型限制**:`obj`必须是引用类型,不能是基本数据类型。如果...

    Java 开发所需json的jar包,转json格式

    Java 开发所需json的jar包,项目对象转json格式, Map,Object> map=HashMap,Object>(); map.put("sex","man"); toJson(map); /** * 将得到的数据以json格式进行输出,如果对象不存在则输出空字符串 * * @param ...

    Java instanceof和getClass()区别实例解析

    Java instanceof 和 getClass() 区别实例解析 Java instanceof 和 getClass() 是 Java 语言中两个常用的操作符,用于判断对象的类型或类别。然而,很多开发者对这两个操作符的使用和区别不够了解。在本文中,我们将...

    instanceof 和 prototype 关系

    在JavaScript中,`instanceof`和`prototype`是两个非常重要的概念,它们涉及到对象的类型检测和继承机制。本文将深入探讨这两个关键字的关系及其在实际编程中的应用。 首先,我们来理解`instanceof`操作符。`...

    Java程序设计示例教程.docx

    `Class`对象提供了许多方法来查询类的信息,如`isInstance(Object obj)`可以检查`obj`是否是类的实例,模拟了`instanceof`操作符。此外,`getConstructors()`、`getFields()`等方法分别用于获取类的构造器和字段...

    Object类和Scanner类

    ### Object类和Scanner类 #### 一、Object类详解 **1.1 概述** 在Java语言中,`Object` 类是所有类的基础。它位于类层次结构的顶端,这意味着所有的类,无论显式还是隐式地,都直接或间接地继承自 `Object` 类。...

    JavaScript中object和Object的区别(详解)

    在JavaScript中,`object`和`Object`两者虽然在名称上仅有一字之差,但它们代表的概念却大不相同。理解这两者的区别对于深入掌握JavaScript的面向对象编程至关重要。 首先,`object`并不是JavaScript中的一个特定...

    java中instanceof与Class的等价性代码示例

    在 Java 中,`instanceof` 运算符的语法为 `object instanceof class`,其中 `object` 是要检查的对象,`class` 是要检查的类。例如,在上面的代码中,我们使用 `p instanceof Person` 来检查对象 `p` 是否是 `...

    对象转型和多态1

    本文将深入探讨Object类、对象转型(向上转型和向下转型)以及多态的概念。 **第一节: Object类** Object类是所有Java类的基类,它位于类层次结构的根节点。这意味着,无论你创建哪个自定义类,最终都会间接地...

    instanceof 判断引用类型,typeof判断基本类型。

    在JavaScript编程语言中,`instanceof` 和 `typeof` 是两个非常重要的操作符,用于判断变量的类型。它们各自有着不同的用途和用法,对于理解和调试代码至关重要。 首先,我们来详细了解一下`instanceof`操作符。`...

    PHP强制对象类型之instanceof操作符

    $obj = new Div(['class' => 'main'], 'This is a div'); echo $obj->getHTML(); // 正确的HTML <div class="main">This is a div</div> // 错误用法,但没有类型检查 $wrongObj = new Div(); echo $wrongObj->...

    第05章 面向对象(下) 09 Instanceof关键字

    例如,如果`obj`是一个`Object`类型的引用,我们想要将其转换为`String`类型,可以先通过`obj instanceof String`来检查,确保转换的安全性。 ```java Object obj = "Hello"; if (obj instanceof String) { String...

    JS中typeof与instanceof之间的区别总结.docx

    总结来说,`typeof`和`instanceof`的主要区别在于: - `typeof`主要用来检测基本数据类型,对于引用类型(除了函数)都返回 "object"。 - `instanceof`用于判断对象是否为特定构造函数的实例,依赖于原型链。 在...

    JS:typeof instanceof constructor prototype区别

    本文将深入探讨四种常用的方法来识别和判断JavaScript中的数据类型:`typeof`、`instanceof`、`constructor`以及`prototype`。 ### 1. `typeof` `typeof`操作符是最常见的类型检测方式之一,它返回一个表示未经计算...

Global site tag (gtag.js) - Google Analytics