zoukankan      html  css  js  c++  java
  • List<String>转换为实体类的属性【转】

    package model;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.List;
    
    public class ListToModel {
        public static void main(String[] args) {
            List<Object> userList = new ArrayList<Object>();
            userList.add("ooP");
            userList.add("男");
            userList.add(18);
            User user = new User();
            try {
                listToModel(userList, user);
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println(user.getName() + "; " + user.getGender() + "; " + user.getAge());
    
        }
    
        public static <T> void listToModel(List<Object> list, T t) throws Exception {
            Field[] fields = t.getClass().getDeclaredFields();
            if (list.size() != fields.length) {
                return;
            }
            for (int k = 0, len = fields.length; k < len; k++) {
                // 根据属性名称,找寻合适的set方法
                String fieldName = fields[k].getName();
                String setMethodName = "set" + fieldName.substring(0, 1).toUpperCase()
                        + fieldName.substring(1);
                Method method = null;
                Class<?> clazz = t.getClass();
                try {
                    method = clazz.getMethod(setMethodName, new Class[] { list.get(k).getClass() });
                } catch (SecurityException e1) {
                    e1.printStackTrace();
                    return;
                } catch (NoSuchMethodException e1) {
                    String newMethodName = "set" + fieldName.substring(0, 1).toLowerCase()
                            + fieldName.substring(1);
                    try {
                        method = clazz.getMethod(newMethodName, new Class[] { list.get(k).getClass() });
                    } catch (SecurityException e) {
                        e.printStackTrace();
                        return;
                    } catch (NoSuchMethodException e) {
                        e.printStackTrace();
                        return;
                    }
                }
                if (method == null) {
                    return;
                }
                method.invoke(t, new Object[] { list.get(k) });
            }
        }
    
    }
  • 相关阅读:
    Sqlite—修改语句(Update)
    Python—图形界面开发
    Django—模型
    Sqlite—删除语句(Delete)
    Shell—详解$( )、$(( ))、``与${ }的区别
    Shell—详解$0、$1、$2、$#、$*、$@、$?、$$变量
    排名靠前的博客
    系统架构--逻辑层
    互联网系统的通用架构笔记
    各类开源协议总结
  • 原文地址:https://www.cnblogs.com/chenghu/p/5582780.html
Copyright © 2011-2022 走看看