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

com.github.hetianyi.common.Convertible Maven / Gradle / Ivy

package com.github.hetianyi.common;

import com.github.hetianyi.common.util.BeanUtil;

/**
 * 通用DO-VO转换抽象工具类,提供DO和VO的互相转换方法。
 * 或者其他POJO类之间的相互转换。
 *
 * @param  self type 本身
 * @author Jason He
 * @version 1.0.9
 * @since 1.0.0
 * @date 2019-12-26
 */
public interface Convertible {

    /**
     * 将此对象转换为目标对象
     * @param t 目标对象的空实例
     * @return 传入的目标对象t
     */
    default   T convertTo(T t) {
        if (null == t) {
            return null;
        }
        return BeanUtil.copyProperties(this, t);
    }

    /**
     * 将目标对象属性复制到此对象
     * @param t 目标对象
     * @return this
     */
    default  S convertFrom(T t) {
        if (null == t) {
            return null;
        }
        return BeanUtil.copyProperties(t, (S) this);
    }
}