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

com.biz.common.copier.Copier Maven / Gradle / Ivy

Go to download

BizX 是一个灵活而高效的业务开发框架, 其中也有很多为业务开发所需要的工具类的提供。

The newest version!
package com.biz.common.copier;

/**
 * 一个实现了 {@code Copier} 接口的类,提供了基于反射的默认实现。
 * 

注意:由于 Java 的类型擦除,运行时需要确保 {@code P} 和 {@code T} 是兼容的。

* *

该接口定义了两个方法,用于在对象之间进行深度复制。第一个方法用于创建并返回一个新对象,第二个方法用于将源对象的内容复制到提供的目标对象中。

* * *

示例代码:

*
{@code
 *  public class Test {
 *     private final Copier myClassAToMyClassBCopier = new AbstractCopier() {
 *         @Override
 *         public BVo copy(MyClassA a, MyClassB b) {
 *             ...
 *             return b;
 *         }
 *     };
 *
 *     public void test() {
 *         MyClassA sourceObject = ...;
 *         MyClassB targetObject = ...;
 *         myClassAToMyClassBCopier.copy(sourceObject, targetObject);
 *     }
 *  }
 * }
 * 
* * @param

源对象类型 * @param 目标对象类型 * @author francis * @version 1.0.1 * @see java.lang.reflect.Field * @see java.lang.reflect.Method * @since 1.0.1 */ public interface Copier { /** * 使用反射复制对象。 *

该方法将源对象 {@code p} 的内容复制到一个新创建的目标对象中并返回。

* * @param p 源对象,不能为空 * @return 复制后的新对象 * @see java.lang.reflect.Field * @see java.lang.reflect.Method */ T copy(P p); /** * 使用反射复制对象到提供的目标对象中。 *

该方法将源对象 {@code p} 的内容复制到提供的目标对象 {@code t} 中,并返回该目标对象。

* * @param p 源对象,不能为空 * @param t 目标对象,不能为空 * @return 复制后的目标对象 * @see java.lang.reflect.Field * @see java.lang.reflect.Method */ T copy(P p, T t); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy