java 對象複製 和 首字母大小寫轉換

首字母大小寫轉換方法

import java.util.Objects;

/**
 * <p>Title : StringUtil.java</p>
 * <p>Description : 字符串工具類</p>
 * <p>DevelopTools : IntelliJ IDEA 2018.2.3 x64</p>
 * <p>DevelopSystem : Windows 10</p>
 * <p>Company : org.wcy</p>
 * @author : WangChenYang
 * @date : 2019/2/13 13:10
 * @version : 0.0.1
 */
public class StringUtil {

    /**
     * @Description: 首字母轉小寫
     * @Author: 王晨陽
     * @LastUpdater: 王晨陽
     * @Date: 2020/3/14-12:35
     */
    public static String toLowerCaseFirstOne(String s){
        if(Character.isLowerCase(s.charAt(0))) {
            return s;
        }else {
            return (new StringBuilder()).append(Character.toLowerCase(s.charAt(0))).append(s.substring(1)).toString();
        }
    }

    /**
     * @Description: 首字母轉大寫
     * @Author: 王晨陽
     * @LastUpdater: 王晨陽
     * @Date: 2020/3/14-12:35
     */
    public static String toUpperCaseFirstOne(String s){
        if(Character.isUpperCase(s.charAt(0))) {
            return s;
        }else {
            return (new StringBuilder()).append(Character.toUpperCase(s.charAt(0))).append(s.substring(1)).toString();
        }
    }

}

java 對象複製

所需jar包

<dependency>
  <groupId>commons-beanutils</groupId>
  <artifactId>commons-beanutils</artifactId>
  <version>1.9.4</version>
</dependency>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.collections4.CollectionUtils;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * <p>Title : BeanUtil.java</p>
 * <p>Description : 對象操作工具</p>
 * <p>DevelopTools : IntelliJ IDEA 2018.2.3 x64</p>
 * <p>DevelopSystem : Windows 10</p>
 * <p>Company : org.wcy</p>
 * @author : WangChenYang
 * @date : 2020/5/20 14:07
 * @version : 0.0.1
 */
public class BeanUtil {

    /**
     * @Description: 支持對象間值拷貝(不同類型則以屬性名相同時映射)
     * @Author: 王晨陽
     * @LastUpdater: 王晨陽
     * @Date: 2020/5/20-14:07
    */
    public static <T> T copy(Object obj, final Class<T> clz) {
        try {
            if(Objects.nonNull(obj)) {
                Class<?> c = obj.getClass();
                Object newObj = c.newInstance();
                PropertyDescriptor[] propertyDescriptors = PropertyUtils.getPropertyDescriptors(c);
                for(PropertyDescriptor propertyDescriptor:propertyDescriptors) {
                    String name = propertyDescriptor.getName();
                    name = StringUtil.toUpperCaseFirstOne(name);
                    Method get = c.getMethod("get" + name);
                    Object invoke = get.invoke(obj);
                    Method set = c.getMethod("set" + name, propertyDescriptor.getPropertyType());
                    set.invoke(newObj,invoke);
                }
                //String jsonStr = toJSONStr(newObj);
                //if(StringUtils.isEmpty(jsonStr)) {
                //    return null;
                //}else {
                //    return (T)jsonStr.toCharArray();
                //}
                return get(clz, newObj);
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * @Description: object轉對應class
     * @Author: 王晨陽
     * @LastUpdater: 王晨陽
     * @Date: 2020/5/20-14:20
    */
    public static <T> T get(Class<T> clz,Object o) {
        if(clz.isInstance(o)){
            return clz.cast(o);
        }
        return null;
    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章