我有两个紧密结合的类集群。为了便于说明,我们可以调用一个view
,另一个调用template
。 template
告诉view
如何查看。我有一个基础view
和基础template
类以及它们的一些配对子类。
所以,就像这样:
基础课程
BaseTemplate< - >基本视角
子类
TemplateA< - > ViewA
TemplateB< - > ViewB
TemplateC< - > ViewC
TemplateD< - > ViewD
view
s(即使是基数view
)每个都有一个相应类型的template
作为变量。 如何将BaseTemplate
中声明的BaseView
变量TemplateB
转换为ViewB
中声明的BaseTemplate
? 我希望能够在{{1}}中设置变量信息,而不必在所有模板子类中设置通用信息。
答案 0 :(得分:1)
听起来您可以使用generics来解决此问题。例如:
public abstract class BaseView<T extends BaseTemplate> {
private final T template;
protected BaseView(T template) {
this.template = template;
}
//common view methods operating using T etc.
}
public final class ViewA extends BaseView<TemplateA> {
public ViewA() {
super(new TemplateA()); //or wherever templates come from
}
// ViewA specific stuff
}