java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 获取Java集合中泛型的Class对象

如何获取Java集合中泛型的Class对象

作者:?abc!

这篇文章主要介绍了如何获取Java集合中泛型的Class对象问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

获取Java集合中泛型的Class对象

直接获取时获取不到的,类型被虚拟机擦除了

利用子类实现父类的泛型是可以的

如何才能获取到泛型的类型

尝试

如果直接使用getClass等方法,会出现下面的情况

这个是获取不到类型的

但是换成下面的方式,便可以获取:使用下边这组大括号,这一点非常重要

换一种类型,一样的情况

所以,可以通过上面的方式去获取类型

上面的这种方法的思路为:利用子类实现父类的泛型是可以的

通过获取第一个元素去判断当前属于哪一种类型即可

很多情况下,按下面的思路去操作即可

public static void main(String[] args) {

        List<String> strs = new ArrayList<>();
        strs.add("xxx");

        List<Integer> ins = new ArrayList<>();
        ins.add(1);

        List<Boolean> boos = new ArrayList<>();
        boos.add(true);

        List<Long> lons = new ArrayList<>();
        lons.add(null);

        System.out.println(((List<?>)strs).get(0) instanceof String);//true
        System.out.println(((List<?>)ins).get(0) instanceof String);//false
        System.out.println(((List<?>)boos).get(0) instanceof Boolean);//true
        System.out.println(((List<?>)lons).get(0) instanceof Long);//false

    }

其他的直接去判断,通过查找并尝试,没有找到符合我要求的,怎么通过上面的方法去暂时实现了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文