Java instanceof 运算符的使用方法

用法:

  (类型变量 instanceof 类|接口)

作用:

  instanceof 操作符用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是则返回true 否则就返回false。

注意:

  · instanceof前面的操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子继承关系否则会引发编译错误。

一个简单的例子:

代码如下:

/**
 * instanceof 运算符
 * @author Administrator
 *
 */

public class TestInstanceof {
    public static void main(String[] args) {
        //声明hello 时使用Object类,则hello的编译类型是Object
        //Object类是所有类的父类,但hello的实际类型是String
        Object hello = "Hello";

//String是Object的子类可以进行instanceof运算,返回true
        System.out.println("字符串是否为object类的实例:"
                + (hello instanceof Object));

//true
        System.out.println("字符串是否为String的实例:"
                + (hello instanceof String));

//false
        System.out.println("字符串是否为Math类的实例:"
                + (hello instanceof Math));

//String实现了Comparable接口,所以返回true
        System.out.println("字符串是否为Comparable类的实例:"
                +(hello instanceof Comparable));

/**
         * String 既不是Math类,也不是Math类的父类,故下面代码编译错误
         */
        //String a = "hello";
        //System.out.println("字符串是否为Math类的实例:"
        //        + (a instanceof Math));

}
}

运行结果:

代码如下:

字符串是否为object类的实例:true
字符串是否为String的实例:true
字符串是否为Math类的实例:false
字符串是否为Comparable类的实例:true

通常在进行强制类型转换之前,先判断前一个对象是不是后一个对象的实例,是否可以成功转换,从而保证代码的健壮性。

(0)

相关推荐

  • java中关于移位运算符的demo与总结(推荐)

    首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种. << 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0填充,多余位舍弃.(等同于乘2的n次方) >> 右移运算符,二进制数据向右移动*位,就在其二进制数据后抹掉几位?(这里还不错定,但个人理解是这样的)(等同于除2的n次方) >>> 无符号右移运算符,不管移动前最高位是0还是1,右移后左侧产生的空位部分都以0来填充. 下面我们借一个

  • java代码之谜运算符篇

    从最简单的运算符加号(+)说起,加号(+)是个二元运算符--也就是说,加号只把两个数联接起来,从来不把第三个或者更多的联接起来. 因此,"1加2加3" 在计算机中被表述为: (1 + 2) + 3 // a或者 1 + (2 + 3) // b虽然我们通常写做 1 + 2 + 3,但是并不意味这它和我们数学中的 1+2+3 是等价的. 那么数学中的 1+2+3 到底表示的是 a 呢,还是 b 呢? 如果计算机的求值是左结合的,那么此表达式等价于第一种a: 如果是右结合的,那么此表达式等

  • Java运算符>、>>、>>>三者的区别

    >表示大于,如:if(a>b)...结果是boolean类型 >>表示带符号右移,如:int i=15; i>>2的结果是3,移出的部分将被抛弃. 转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3). >>>无符号右移: 按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零.对于正数来说和带符号右移相同,对于负数来

  • Java中的位运算符、移位运算详细介绍

    一.位运算 Java中有4个位运算,它们的运算规则如下: (1)按位与 (&) :两位全为1,结果为1,否则为0: (2)按位或 (|) :两位有一个为1,结果为1,否则为0: (3)按位取反(~):0 变 1, 1变0: (4)按位异或(^):两位,如果相同,结果为0:如果不同,结果为1: 注意: (1)位运算中的 符号位(最高位)也跟着变; (2)位运算符与逻辑运算符(逻辑与&&.逻辑或||.逻辑非! )有点相似.但是,逻辑运算符只能操作boolean变量 (也就是左右两边的值

  • Java中使用异或运算符实现加密字符串

    通过异或运算符号与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到加密后的字符串. import java.util.Scanner; public class Encypt { public static void main(String args[]){ Scanner scan = new Scanner(System.in); System.out.println("请输入一个英文字符串或解密字符串:"); String password = scan.ne

  • Java用三元运算符判断奇数和偶数的简单实现

    创建一个类,在该类的主方法中创建标准输入流的扫描器对象,提示用户输入一个整数,并通过扫描器的方法来接受这个整数,然后通过三元运算符判断该数字与2的余数,如果余数为0,说明其是偶数,否则是奇数. 复制代码 代码如下: import java.util.Scanner;public class ParityCheck {    public static void main(String[] args){        System.out.println("请输入一个整数:");    

  • Java 逻辑运算符中&&与&,||与|的区别

    在Java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或). &&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断.而&要对所有的条件都进行判断. 看下面的程序: public static void main(String[] args) { // TODO Auto-generated method stub if((23!=23)&&(100/0==0)){ System.ou

  • Java instanceof 运算符的使用方法

    用法: (类型变量 instanceof 类|接口) 作用: instanceof 操作符用于判断前面的对象是否是后面的类,或者其子类.实现类的实例.如果是则返回true 否则就返回false. 注意: · instanceof前面的操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子继承关系否则会引发编译错误. 一个简单的例子: 复制代码 代码如下: /** * instanceof 运算符 * @author Administrator * */ public class TestI

  • Java中==运算符与equals方法的区别及intern方法详解

    Java中==运算符与equals方法的区别及intern方法详解 1.  ==运算符与equals()方法 2. hashCode()方法的应用 3. intern()方法 /* Come from xixifeng.com Author: 习习风(StellAah) */ public class AboutString2 { public static void main(String[]arsgs) { String myName="xixifeng.com"; String

  • Java的super关键字与instanceof运算符使用方法

    Java super关键字 super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类中,Java 能自动向上层类追溯. 父类行为被调用,就好象该行为是本类的行为一样,而且调用行为不必发生在父类中,它能自动向上层类追溯. super 关键字的功能: 调用父类中声明为 private 的变量. 点取已经覆盖了的方法. 作为方法名表示父类构造方法. 调用隐藏变

  • 详解java==运算符和equals()方法的区别

    Java语言程序中判断两个变量是否相等有两种方式:一是运用==运算符,二是运用equals方法. 1. ==运算符 对于==运算符来说,如果两个变量是基本类型的,并且是数值类型,则只要它们的值相等,就会返回true:然而如果是两个引用类型的变量,则分为两种情况:1)它们指向同一个对象,结果返回true:2)它们指向不同的对象,即使对象内容相同,结果还是返回false:下面程序示范了使用==运算符比较两个变量是否相等的结果: public class Test { public static vo

  • 实例讲解JavaScript中instanceof运算符的用法

    instanceof 运算符简介 在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object".ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题.instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型.与 typeof 方法不同的是,instanceof 方法要求开发者明确地确

  • 深入剖析JavaScript instanceof 运算符

    instanceof 运算符简介 在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object".ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题.instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型.与 typeof 方法不同的是,instanceof 方法要求开发者明确地确

  • 基于JSON和java对象的互转方法

    先说下我自己的理解,一般而言,JSON字符串要转为java对象需要自己写一个跟JSON一模一样的实体类bean,然后用bean.class作为参数传给对应的方法,实现转化成功. 上述这种方法太麻烦了.其实有一种东西叫jsonObject可以直接不用新建实体类bean,而实现转化,先说org.json.JSONObject这个JSONObject,贴上代码: import java.beans.IntrospectionException; import java.beans.Introspect

  • Java instanceof用法详解及实例代码

    Java instanceof用法详解 Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: result = object instanceof class 参数: Result:布尔类型. Object:必选项.任意对象表达式. Class:必选项.任意已定义的对象类. 说明: 如果 object 是 class 的一个实例,则 instanceof 运

  • JavaScript中instanceof运算符的用法总结

    JavaScript中instanceof运算符是返回一个 Boolean 值,指出对象是否是特定类的一个实例. 使用方法:result = object instanceof class其中result是必选项.任意变量.object是必选项.任意对象表达式.class是必选项.任意已定义的对象类. 说明如果 object 是 class 的一个实例,则 instanceof 运算符返回 true.如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false.

  • JavaScript的instanceof运算符学习教程

    语法 object instanceof constructor 参数 object: 要检测的对象. constructor: 某个构造函数 描述: instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上. // 定义构造函数 function C(){} function D(){} var o = new C(); // true,因为 Object.getPrototypeOf(o) === C.prototype o

随机推荐