在java中可以这样做吗?
public class serviceClass<T extends BaseClass, D extends BaseClass> {
private T copyPropertiesValues(D item) {
BaseClass item2 = item.getClass().getDeclaredConstructor().newInstance();
BeanUtils.copyProperties(item, item2);
T newItem = (T) item2;
//newItem is an instance of D instead of T
}
}
我找到的唯一方法是转到“t”类并创建一个以“d”为参数的构造函数。
但是我将创建许多继承自基类的其他类,并且我需要一个接一个地“重复”代码。
有没有更简单的方法?
谢谢您。
更新
添加更多详细信息:
基类.java
@Data
public abstract class BaseClass {
@Id
private Long id;
private String integrationStatus;
}
java(表示不同表中的不同字段,但包含“id”和“integrationstatus”)—在我的项目中会有很多这样的类型
@Data
public abstract class ParentClass extends BaseClass {
private String col001;
private String col002;
///other fields
}
childclass(表示“t”和“d”)—每个parentclass只有两个
@Data
@Entity
@Table(schema = "DB_[number]", table="sameTable")
public class ChildClass extends ParentClass {
public ChildClass() {}
public ChildClass(ParentClass otherObj) {
BeanUtils.copyProperties(otherObj, this)
}
}
暂无答案!
目前还没有任何答案,快来回答吧!