instanceOf 与 isInstance 用法注意事项

package com.cisco.learning;

public class TestInstance {

public static void main(String[] args) {

/*
* false false
*/
/*
* he method returns true if the specified Object argument is non-null
* and can be cast to the reference type represented by this Class
* object without raising a ClassCastException. It returns false
* otherwise.
*/
String str = null;
System.out.println(str instanceof String);
System.out.print(String.class.isInstance(str));

// Error:Incompatible conditional operand types TestInstance and String
/* System.out.println(new TestInstance() instanceof String); */

// Compatible
System.out.println(new Exception() instanceof RuntimeException);
System.out.println(new RuntimeException() instanceof Exception);

System.out.println(String.class.isInstance(new TestInstance()));
System.out.println(RuntimeException.class.isInstance(new Exception()));
System.out.println(Exception.class.isInstance(new RuntimeException()));
System.out.println();

//总结:
/*当实例为null时,都返回false,防止进行转换;
当instanceof,会比较彼此兼容性,且不分左右顺序;*/

}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值