如何扩展Java泛型类并传递类型

问题描述 投票:0回答:1

我有一个参数化类表,一切都按我的预期工作。

public abstract class Table<T> { ... }

我现在需要一个扩展 Table 类的新类 SegmentedTable。 SegmentedTable 的类型将是相同的(并尝试传递到基类)。我试过了:

public abstract class SegmentedTable<T extends Table<T>> { ... }

...具有 T 和 T2 的各种拼写组合。

最终,我试图能够拥有这样的代码:

Table<SomeClass> table;
SegmentedTable<AnotherClass> segTable;

Table 和 SegmentedTable 都定义了多种方法。另外,两者都有成员数据,因此我无法使用具有“默认”方法的接口。 (实际上,如果需要,我可以想到如何做到这一点,但很模糊。)无论如何,我正在尝试到达 SegmentedTable 应该扩展/继承 Table 中的所有内容的位置。

是否有允许我扩展的语法?从 SegmentedTable 到 Table 的类型始终相同。

java generics extend
1个回答
0
投票

“实验单位1998X”提出的问题回答了我的问题。非常感谢!我看不到将其标记为答案的方法,因此我需要提供以下内容。但真正值得称赞的是“实验单位1998X”。

这有效:

public abstract class MyTable<T extends MyElement> { ... }
public abstract class MySegmentedTable<T extends MyElement> extends Table<T>
© www.soinside.com 2019 - 2024. All rights reserved.