java判断数据类型

java判断数据类型

1、基本数据类型。如byte、short、char、int、long、float、double、boolean,这些的比较用==。

2、对象数据类型。如Integer,String,List,Collection,Map。

(1)方法一:使用对象变量.getClass().getName(),如:

String s = "jessica";

System.out.println(s.getClass().getName());

// 输出结果:java.lang.String

Integer i=1;

System.out.println(i.getClass().getName());

// 输出结果:java.lang.Integer

List l = new ArrayList();

System.out.println(l.getClass().getName());

// 输出结果:java.util.ArrayList

Map m = new HashMap();

System.out.println(m.getClass().getName());

// 输出结果:java.util.HashMap

Collection c = new ArrayList();

System.out.println(c.getClass().getName());

// 输出结果:java.util.ArrayList

// Map,List和Collection比较特殊,它们是接口,父类引用指向子类对象

// 所以List和Collection引用指向的底层实际是ArrayList对象,

// Map引用指向的底层实际是HashMap对象

(2)方法二:判断某一对象变量是不是特定的对象类型

用对象变量 instanceof 特定对象类型。

判断方法:

String s = "jessica";

System.out.println(s instanceof String);

Integer i = 1;

System.out.println(i instanceof Integer);

List l = new ArrayList();

System.out.println(l instanceof List);

System.out.println(l instanceof ArrayList);

Map m = new HashMap();

System.out.println(m instanceof Map);

Collection c = new ArrayList();

System.out.println(c instanceof Collection);

// 以上结果都是true,用这个判断变量的对象数据类型

Collection co = new Vector();

System.out.println(co instanceof ArrayList);

// 结果:false

通常用法:

// 但我们通常是这样用的,如:

List li = new Vector();

if (li instanceof ArrayList){

// 进行下一步操作

}else{

System.out.println("error");

// 接口指向的底层对象不满足要求时出错

}

相关文章