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;
        }
  • 相关阅读:
    JavaWeb--HttpSession案例
    codeforces B. Balls Game 解题报告
    hdu 1711 Number Sequence 解题报告
    codeforces B. Online Meeting 解题报告
    ZOJ 3706 Break Standard Weight 解题报告
    codeforces C. Magic Formulas 解题报告
    codeforces B. Sereja and Mirroring 解题报告
    zoj 1109 Language of FatMouse 解题报告
    hdu 1361.Parencodings 解题报告
    hdu 1004 Let the Balloon Rise 解题报告
  • 原文地址:https://www.cnblogs.com/Cailf/p/10564817.html
Copyright © 2011-2022 走看看