`
pwosboy
  • 浏览: 84872 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

用instanceof检测对象的类型

阅读更多
/**
 * instanceof 用于检测对象的类型。
 * (1)类的对象与类作instance of操作,结果为true
 * (2)子类对象与父类作instance of操作,结果为true。
 *  因此,所有对象与Object作instance of操作,结果都为true。
 * (3)其他情况下,结果都为false。
 */
public class InstanceOf {
  
  // 父类
  static class ClassA {
  }
  // 子类
  static class ClassB extends ClassA{
  }
  public static void main(String[] args) {
    ClassA a = new ClassA();
    ClassB b = new ClassB();
    // 检测对象a,b是否为ClassA类型
    if (a instanceof ClassA){
      System.out.println("Object a is a ClassA Object!");
    } else {
      System.out.println("Object a is not a ClassA Object!");
    }
    if (b instanceof ClassA){
      System.out.println("Object b is a ClassA Object!");
    } else {
      System.out.println("Object b is not a ClassA Object!");
    }
    
    // 检测对象a,b是否为ClassB类型
    if (a instanceof ClassB){
      System.out.println("Object a is a ClassB Object!");
    } else {
      System.out.println("Object a is not a ClassB Object!");
    }
    if (b instanceof ClassB){
      System.out.println("Object b is a ClassB Object!");
    } else {
      System.out.println("Object b is not a ClassB Object!");
    }
  }
}
运行结果:
C:\java>java    InstanceOf
Object a is a ClassA Object!
Object b is a ClassA Object!
Object a is not a ClassB Object!
Object b is a ClassB Object!
分享到:
评论

相关推荐

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

    这是因为`typeof`实际上检测的是变量的原始类型,而数组和函数在JavaScript中被视为对象。因此,为了更准确地判断数组或函数,我们需要使用其他方法,比如`Array.isArray()`或`typeof object === 'function'`。 ...

    JS:typeof instanceof constructor prototype区别

    使用`Object.prototype.toString.call()`方法是一种更全面且可靠的方式来检测对象类型。此方法返回一个描述对象类型的字符串,格式为`"[object Type]"`,其中`Type`是对象的具体类型。例如,`Object.prototype....

    关于js typeof 与 instanceof 判断数据类型区别及开发使用.docx

    `typeof`和`instanceof`是两种常见的用于检测数据类型的工具,但它们有着不同的用法和限制。下面我们将深入探讨这两个操作符的区别及其在实际开发中的应用。 1. `typeof` 操作符 `typeof` 是JavaScript中的一个...

    instanceof 和 prototype 关系

    总结一下,`instanceof`和`prototype`在JavaScript中分别用于检测对象实例和定义对象的继承结构。`instanceof`通过查找对象的原型链来确定对象与构造函数之间的实例关系,而`prototype`则用来设置和访问对象的原型...

    JavaScript类型检测之typeof 和 instanceof 的缺陷与优化

    typeof无法区分object类的具体类型,instanceof虽然可以识别更复杂的类型,但在检测对象是否为某种特定的object类型时会存在不足。为了优化这一问题,可以利用对象的constructor属性来提高类型检测的准确性,从而...

    详解JavaScript中typeof与instanceof用法

    这在需要判断内置对象或更复杂的对象类型时非常有用。 例如: ```javascript var a = [1, 2, 3]; alert(Object.prototype.toString.call(a)); // 返回"[object Array]" ``` 在这个例子中,通过toString方法我们...

    用Object.prototype.toString.call(obj)检测对象类型原因分析

    对于自定义的对象类型,我们通常使用 instanceof 操作符来进行检测。instanceof 操作符会检查构造函数的 prototype 属性是否出现在对象的原型链中。这同样是一种有效的类型检测方式,尤其适合于检测自定义对象类型。...

    前端面试题之baseJS-instanceof.zip

    6. **替代方案**:除了`instanceof`,还有其他方法可以用来检查对象类型,如`Object.prototype.toString.call()`,它返回表示对象类型的字符串,或者使用`typeof`来检测基本类型。 在面试中,面试官可能会提出关于`...

    Java中instanceOf关键字的用法及特性详解.rar

    1. **类型检查**:当你需要在运行时确定对象的实际类型时,可以使用`instanceOf`。例如,如果你有一个父类引用指向子类对象,可以检查它是否为特定的子类。 ```java Animal animal = new Dog(); // Dog是Animal的...

    JavaScript的instanceof有bug?

    如果需要更可靠的检查,可以使用`Object.prototype.toString.call(obj)`,它会返回表示对象类型的字符串,例如`"[object Array]"`。 总之,虽然`instanceof`在某些情况下可能不完全符合直觉,但通过深入理解其工作...

    JavaScript中instanceof运算符的使用示例

    JavaScript中的instanceof运算符是面向对象编程中非常重要的一个概念,它用于检测一个实例...通过这些示例,可以更加深入地理解instanceof运算符在JavaScript中如何工作,以及如何在实际开发中应用它来检测对象类型。

    js中检测数据类型的方法总结1

    `toString` 方法返回一个表示对象的字符串,当我们使用 `call` 改变 `this` 指向时,可以获取到目标对象的类型信息: ```javascript Object.prototype.toString.call("hello") === "[object String]"; // true ``...

    js中的instanceof操作符1

    在这种情况下,可以使用`Array.isArray()`或`Object.prototype.toString.call()`方法来更安全地检测对象类型。 ```javascript var myObj; if (Array.isArray(myObj)) { // myObj 是数组 } else if (Object....

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

    `instanceof`操作符则用来检测一个对象是否为某个构造函数的实例。它的基本语法是`variable instanceof Constructor`。如果变量是Constructor创建的对象实例,`instanceof`将返回`true`,否则返回`false`。 例如: ...

    JavaScript中判断对象类型的几种方法总结

    例如,`typeof`适用于基础类型判断,`instanceof`适合于类实例的检测,而`Object.prototype.toString.call()`则是判断复杂对象类型和跨框架问题的首选。了解这些差异可以帮助开发者编写出更加健壮和适应各种情况的...

    javascript中的数据类型检测方法详解.docx

    虽然它不能区分某些特定的引用类型,如数组和日期,但可以用来区别基本类型和对象类型。 3. `constructor` 属性: 每个对象都有一个 `constructor` 属性,指向创建该对象的构造函数。通过比较 `constructor` 与...

    前端大厂最新面试题-typeof_instanceof.docx

    在前端开发中, typeof 和 instanceof 是两种常用的判断数据类型的方法,下面我们将详细介绍这两种方法的使用方法、区别和实现原理。 一、typeof 操作符 typeof 操作符返回一个字符串,表示未经计算的操作数的类型...

    chapter09面向对象案例继承和多态——动物猫狗.doc

    在本文中,我们还将使用instanceof操作符来检测对象的类型。instanceof操作符可以用来检测一个对象是否是某个类或其子类的实例。在eatfunction方法中,我们使用instanceof操作符来检测传递进来的对象是否是猫、狗或...

    java 中的instanceof用法详解及instanceof是什么意思(推荐)

    - `instanceof`在多态编程中非常有用,它可以用来在运行时动态地判断对象的实际类型,从而决定如何执行特定的操作,这通常与方法的重写和覆盖一起使用。 7. **设计模式中的应用**: - 在某些设计模式中,如工厂...

Global site tag (gtag.js) - Google Analytics