为了避免ClassCastException的发生,Java提供了 instanceof 关键字,给引用变量做类型的校验。
变量名 instanceof 数据类型
如果变量属于该数据类型,返回true。
如果变量不属于该数据类型,返回false。
- 返回值为boolean的方法,在书写if(!judge(list)){…}的时候,可以用judge(list).else快速生成
- 可以用judge(list).try快速生成try…catch包裹的代码块
package cn.itcast.test;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
public class InstanceofTest {
public static void main(String[] args) {
ArrayList<String> listA = new ArrayList<>();
listA.add("zhangsan");
LinkedList listL = new LinkedList();
listL.add("lisi");
Vector<String> vector = new Vector<>();
vector.add("wanger");
judge(listA);
judge(listL);
if (!judge(vector)) {
System.out.println(vector + "啥也不是");
}
}
public static boolean judge(List list) {
if (list instanceof ArrayList) {
System.out.println("ArrayList = " + list);
return true;
} else if (list instanceof LinkedList) {
System.out.println("LinkedList = " + list);
return true;
}
return false;
}
}