All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mountcloud.ffmepg.util.ObjectUtil Maven / Gradle / Ivy

package org.mountcloud.ffmepg.util;

import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * Object对象工具
 * @author zhanghaishan
 * @version V1.0
 * 2017/12/18.
 */
public class ObjectUtil {

    /**
     * 获取所有函数
     * @param t 类
     * @param methods 方法
     * @param index 深度
     */
    public void getMethods(Class t, List methods, Integer index){

        methods.addAll(Arrays.asList(t.getMethods()));

        if(index!=null){
            index = index -1;
            if(index<=0){
                return;
            }
        }

        Class t1 = t.getSuperclass();
        if (t1.getSimpleName().equals("Object")) {
            return;
        }
        getMethods(t1, methods,index);
    }

    /**
     * 获取所有属性
     * @param t 类
     * @param fields 属性
     * @param index 深度
     */
    public void getFields(Class t, List fields, Integer index) {

        fields.addAll(Arrays.asList(t.getDeclaredFields()));

        if(index!=null){
            index = index -1;
            if(index<=0){
                return;
            }
        }

        Class t1 = t.getSuperclass();
        if (t1.getSimpleName().equals("Object")) {
            return;
        }
        getFields(t1, fields,index);
    }

    /**
     * 将空属性附上默认值
     * @param obj 对象
     * @param notSet 不设置为空的属性
     */
    public void setNullFields(T obj, List notSet){
        if(obj==null){
            return;
        }
        Class entityClass = obj.getClass();

        List  entityFields = new ArrayList();
        getFields(entityClass, entityFields,null);

        for(Field field:entityFields){
            if(field.getName().equals("serialVersionUID")){
                continue;
            }

            if(notSet!=null&¬Set.contains(field.getName())){
                continue;
            }

            try{
                PropertyDescriptor pd = new PropertyDescriptor(field.getName(), entityClass);
                Method get = pd.getReadMethod();
                Object getValue = get.invoke(obj);

                if(getValue==null){

                    Method set = pd.getWriteMethod();

                    Class fieldClass = field.getType();
                    if(fieldClass.equals(String.class)){
                        set.invoke(obj,new String(""));
                    }

                    if(fieldClass.equals(Integer.class)){
                        set.invoke(obj,new Integer(0));
                    }

                    if(fieldClass.equals(Double.class)){
                        set.invoke(obj,new Double(0));
                    }

                    if(fieldClass.equals(Float.class)){
                        set.invoke(obj,new Float(0));
                    }

                    if(fieldClass.equals(Date.class)){
                        set.invoke(obj,new Date());
                    }
                }

            }catch (Exception e){
                e.printStackTrace();;
            }

        }

    }

    /**
     * 给空属性附上默认值
     * @param objs 对象集合
     * @param notSet 不设置空的属性
     */
    public void setNullFields(List objs,List notSet){
        if(objs!=null){
            for(int i=0;i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy