gpt4 book ai didi

java - 将继承的变量强制转换为子类

转载 作者:太空宇宙 更新时间:2023-11-04 07:39:54 25 4
gpt4 key购买 nike

我有两个紧密结合的类(class)群。为了便于解释,我们将其中一个称为 View ,另一个称为模板template 告诉view 如何查看。我有一个基本 view 和基本 template 类以及它们的许多配对子类。

所以,就像这样:

基类

基础模板<->基础 View

子类

模板A <-> View A
模板B <-> View B
模板C <-> View C
模板D <-> View D

每个 View (甚至基本 View )都有一个相应类型的模板作为变量。 例如,如何将 BaseView 中声明的 BaseTemplate 变量强制转换为 ViewB 中声明的 TemplateB我希望能够在 BaseTemplate 中设置变量信息,而不必在所有模板子类中设置通用信息。

最佳答案

听起来你可以使用 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
}

关于java - 将继承的变量强制转换为子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com