zoukankan      html  css  js  c++  java
  • java 反射获取字段为List类型中的泛型类型

    在java编程时,经常会使用反射去处理对象,有时会需要知道List的泛型类型:示例操作如下

         obj = pojo.newInstance();
            // 首先得到pojo所定义的字段
            Field[] fields = pojo.getDeclaredFields();
            for (Field curField : fields) {
                // 设置字段可访问(必须,否则报错)
                curField.setAccessible(true);
    
                Class<?> curFieldType = curField.getType();
                // 集合List元素
                if (curFieldType.equals(List.class)) {
                        // 当前集合的泛型类型
                        Type genericType = curField.getGenericType();
                        if (null == genericType) {
                            continue;
                        }
                
                        if (genericType instanceof ParameterizedType) {
                            ParameterizedType pt = (ParameterizedType) genericType;
                            // 得到泛型里的class类型对象
                            Class<?> actualTypeArgument = (Class<?>)pt.getActualTypeArguments()[0];
                            List<Object> curEleList = new ArrayList<>();
                            Object actualType = actualTypeArgument.newInstance();
                            //....actualType字段处理
                            curEleList.add(actualType);    
                            curField.set(obj, curEleList);
                        }
                }
            }    
  • 相关阅读:
    GlusterFS安装部署
    glusterfs peer失败
    GlusterFs 启动报错
    利用idea反编译jar包
    hive 错误记录 之moveing 失败
    节点不可用,显示noReady
    kafka 配置认证与授权
    flink (2) 读取kafka数据
    Flink (1) 安装部署
    redis the cluster is down
  • 原文地址:https://www.cnblogs.com/kingsonfu/p/11642155.html
Copyright © 2011-2022 走看看