zoukankan      html  css  js  c++  java
  • Java 处理Object对象

    原文:https://www.cnblogs.com/jf8710/articles/9657920.html

    package com.jf.ftp;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.log4j.Logger;
    
    public class ObjectUtil {
    
        private static Logger log = Logger.getLogger(NewFtpUtil.class);
        
        /**
        * 根据属性名获取属性值
        * */
        private Object getFieldValueByName(String fieldName, Object o) {
            try {
                String firstLetter = fieldName.substring(0, 1).toUpperCase();
                String getter = "get" + firstLetter + fieldName.substring(1);
                Method method = o.getClass().getMethod(getter, new Class[] {});
                Object value = method.invoke(o, new Object[] {});
                return value;
            } catch (Exception e) {
                log.error(e.getMessage(), e);
                return null;
            }
        }
        
        /**
        * 获取属性名数组
        * */
        private String[] getFiledName(Object o) {
            Field[] fields = o.getClass().getDeclaredFields();
            String[] fieldNames = new String[fields.length];
            for (int i = 0; i < fields.length; i++) {
                System.out.println(fields[i].getType());
                fieldNames[i] = fields[i].getName();
            }
            return fieldNames;
        }
        
        /**
        * 获取属性类型(type),属性名(name),属性值(value)的map组成的list
        * */
        private List getFiledsInfo(Object o) {
            Field[] fields = o.getClass().getDeclaredFields();
            String[] fieldNames = new String[fields.length];
            List list = new ArrayList();
            Map infoMap = null;
            for (int i = 0; i < fields.length; i++) {
                infoMap = new HashMap();
                infoMap.put("type", fields[i].getType().toString());
                infoMap.put("name", fields[i].getName());
                infoMap.put("value", getFieldValueByName(fields[i].getName(), o));
                list.add(infoMap);
            }
            return list;
        }
        
        /**
        * 获取对象的所有属性值,返回一个对象数组
        * */
        public Object[] getFiledValues(Object o) {
            String[] fieldNames = this.getFiledName(o);
            Object[] value = new Object[fieldNames.length];
            for (int i = 0; i < fieldNames.length; i++) {
                value[i] = this.getFieldValueByName(fieldNames[i], o);
            }
            return value;
        }
    }
  • 相关阅读:
    协方差的意义
    ios7新特性实践
    微信支付大盗--黑色产业链
    UVA 297 Quadtrees(四叉树建树、合并与遍历)
    HDU 2876 Ellipse, again and again
    java中接口的定义与实现
    Oracle Linux 6.3下安装Oracle 11g R2(11.2.0.3)
    Fortran使用隐形DO循环和reshape给一维和多维数组赋初值
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
  • 原文地址:https://www.cnblogs.com/BambooLamp/p/12468588.html
Copyright © 2011-2022 走看看