【发布时间】:2015-11-22 12:32:51
【问题描述】:
我有一个名为 Transformer 的超类。我有两个派生类将 A 类转换为 B 类,反之亦然。有类:
class A{
private Long id;
private String name;
... getter and setters
}
class B{
private Long id;
private String name;
... getter and setters
}
interface Transformer<S,D> {
D convert(S source);
}
class ATransformer implements Transformer<A,B>{
public B convert(A a){
B b=new B();
b.setId(a.getId());
.....
return b;
}
}
class BTransformer implements Transformer<B,A>{
public A convert(B b){
A a=new A();
a.setId(b.getId());
.....
return a;
}
}
如您所见,派生的转换器类具有重复的代码。是否有任何设计或解决方案可以在不使用反射的情况下避免这种重复?
【问题讨论】:
-
看来你不需要多个类。
-
A和B除了类名有什么区别?
-
@cricket_007 例如 A 是我的实体,B 是我的 dto
标签: java inheritance interface superclass