zoukankan      html  css  js  c++  java
  • java 实例化泛型且赋值

    实例化泛型

    Class <T> clazz = (Class <T>) ((ParameterizedType) new 
     Entity().getClass().getGenericSuperclass()).getActualTypeArguments()[0];
            T dto = clazz.newInstance();

    泛型方法

        /**
         * 
         * @param clazz
         * @param book
         * @param sheetIndex
         * @param <T>
         * @return
         * @throws IllegalAccessException
         * @throws InstantiationException
         */
        public static <T> List<T> toEntity(Class<T> clazz,Workbook book, int sheetIndex) throws IllegalAccessException, InstantiationException {
            List<T> list = new ArrayList<>();
    //        Class <T> clazz = (Class <T>) ((ParameterizedType) entity.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
            T dto = clazz.newInstance();
            T dto2 = clazz.newInstance();
            Field[] fields = clazz.getDeclaredFields();
            Map<String, Field> fieldMap = new LinkedHashMap<>();
            for (Field field : fields) {
                String mod = Modifier.toString(field.getModifiers());
                System.out.println("mod = " + mod);
                // 跳过静态属性
                if (mod.indexOf("static") != -1) {
                    continue;
                }
    
                // 取得注解的设置的属性值
                Description setField = field.getAnnotation(Description.class);
                if (setField != null) {
                    String fieldName = setField.key();
                    String fieldType = setField.value();
                    //   必须,不然赋值会出现异常
                    field.setAccessible(true);
                    fieldMap.put(fieldType, field);
                    System.out.println("注解的属性 fieldName = " + fieldName);
                    System.out.println("注解的属性 fieldType = " + fieldType);
                }
            }
            int num = 0;
            for (String key : fieldMap.keySet()) {
                num++;
                fieldMap.get(key).set(dto, "dto1:" + key + num);
                fieldMap.get(key).set(dto2, "dto2:" + key + num);
            }
            list.add(dto);
            return list;
        }
  • 相关阅读:
    JavaScript的学习--正则表达式
    AngularJS的学习--TodoMVC的分析
    数据可视化(6)--Google Charts实例
    数据可视化(5)--jqplot经典实例
    数据可视化(4)--jqplot
    算法与数据结构(1)--线性表
    数据可视化(3)--Google Charts
    数据可视化(2)--Justgage
    数据可视化(1)--Chart.js
    Node.js连接mysql
  • 原文地址:https://www.cnblogs.com/Cailf/p/10564817.html
Copyright © 2011-2022 走看看