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");
//            接口指向的底层对象不满足要求时出错
        }

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐