• 对象操作工具类


    public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {

    /**
    * 注解到对象复制,只复制能匹配上的方法。
    * @param annotation
    * @param object
    */
    public static void annotationToObject(Object annotation, Object object){
    if (annotation != null){
    Class<?> annotationClass = annotation.getClass();
    if (null == object) {
    return;
    }
    Class<?> objectClass = object.getClass();
    for (Method m : objectClass.getMethods()){
    if (StringUtils.startsWith(m.getName(), "set")){
    try {
    String s = StringUtils.uncapitalize(StringUtils.substring(m.getName(), 3));
    Object obj = annotationClass.getMethod(s).invoke(annotation);
    if (obj != null && !"".equals(obj.toString())){
    m.invoke(object, obj);
    }
    } catch (Exception e) {
    // 忽略所有设置失败方法
    }
    }
    }
    }
    }

    /**
    * 序列化对象
    * @param object
    * @return
    */
    public static byte[] serialize(Object object) {
    ObjectOutputStream oos = null;
    ByteArrayOutputStream baos = null;
    try {
    if (object != null){
    baos = new ByteArrayOutputStream();
    oos = new ObjectOutputStream(baos);
    oos.writeObject(object);
    return baos.toByteArray();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return null;
    }

    /**
    * 反序列化对象
    * @param bytes
    * @return
    */
    public static Object unserialize(byte[] bytes) {
    ByteArrayInputStream bais = null;
    try {
    if (bytes != null && bytes.length > 0){
    bais = new ByteArrayInputStream(bytes);
    ObjectInputStream ois = new ObjectInputStream(bais);
    return ois.readObject();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return null;
    }
    }
  • 相关阅读:
    GoLang设计模式15 策略模式
    GoLang设计模式18 适配器模式
    GoLang设计模式14 状态模式
    GoLang设计模式12 空对象模式
    GoLang设计模式19 桥接模式
    GoLang设计模式17 访客模式
    GoLang设计模式13 观察者模式
    GoLang设计模式16 模板方法模式
    Papervision3D材质
    Papervision3D基本原理
  • 原文地址:https://www.cnblogs.com/luyuefei/p/13386564.html
Copyright © 2020-2023  润新知