避免instanceof非预期结果

2021-12-09  本文已影响0人  A_一只小菜鸟

instanceof是一个简单的二元操作符,它是用来判断一个对象是否是一个类实例的,其操作类似于>=、==,非常简单,我们来看段程序,代码如下:

public class client {
public static void main(String[] args){
//string对象是否是Object的实例
boolean b1="Sting" instanceof Object;//String对象是否是String的实例
boolean b2 = new String() instanceof String;//Object对象是否是string的实例
boolean b3 new Object() instanceof String:1/拆箱类型是否是装箱类型的实例
boolean b4.'A' instanceof Character,//空对象是否是String的实例
boolean b5 null instanceof String,//类型转换后的空对象是否是String的实例
boolean b6=(string)null instanceof string;//Date对象是否是String的实例
boolean b7new Date() instanceof String;//在泛型类中判断String对象是否是Date的实例
booleanb8newGenericClass<String>().isDateInstance("");
}


class Genericclass<T>{
//判断是否是Date类型
public boolean isDateInstance(T t){
return t instanceof Date;
}

就这么一段程序,instanceof的所有应用场景都出现了,同时问题也产生了:这段程序中哪些语句会编译通不过?我们一个一个地来解说。

上一篇 下一篇

猜你喜欢

热点阅读