【发布时间】:2015-03-13 09:10:26
【问题描述】:
B 扩展 A,C 扩展 A
试图改变:
public void convertA(A a) {
AClass clazz = new AClass();
if (a instanceof B) {
clazz.setX(convertBtoX(a));
} else if (a instanceof C) {
clazz.setY(convertCtoY(a));
}
}
到
public void convertAbis(A a) {
AClass clazz = fill(a); //ERROR NO SUITABLE METHOD FOUND FOR FILL
}
public AClass fill(B b) {
clazz.setX(convertBtoX(b));
}
public AClass fill(C c) {
clazz.setY(convertCtoY(c));
}
导致“找不到合适的填充方法”错误。 我怎样才能删除“实例”开关? A、B、C 是数据传输对象,不应该知道 X Y 和反之亦然,所以我不能简单地将填充方法添加到 A、B、C 类。
建议?
【问题讨论】:
标签: java oop dynamic-binding