gpt4 book ai didi

Java:子类化泛型类

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:13:44 25 4
gpt4 key购买 nike

我有一个通用类,我希望按如下方式对其进行子类化:

public class SomeTable<T extends BaseTableEntry>
extends BaseTable<T>
{

public SomeTable(int rows, int cols)
{
super(rows, cols, SomeTableEntry.class);
//Does not compile:
//Cannot find symbol: constructor BaseTable(int, int, java.lang.Class<blah.blah.SomeTableEntry.class>)
}
}

...通用父类(super class)是:

public class BaseTable<T extends BaseTableEntry>
{

public BaseTable(int rows, int cols, Class<T> clasz)
{
...
}
...
}

我理解编译器错误,但似乎找不到解决方法,只能在 SomeTable 构造函数中包含一个额外参数。

有什么建议吗?

谢谢!

最佳答案

编译:

public class SomeTable extends BaseTable<SomeTableEntry> {
public SomeTable(int rows, int cols)
{
super(rows, cols, SomeTableEntry.class);
}
}

它适用于类型转换:

public class SomeTable<T extends BaseTableEntry> extends BaseTable<T> {
public SomeTable(int rows, int cols)
{
super(rows, cols, (Class<T>)SomeTableEntry.class);
}
}

但我期待有人发布解释为什么编译器需要对类进行强制转换。

关于Java:子类化泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2130100/

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