【发布时间】:2026-01-30 22:55:01
【问题描述】:
是否可以在java中创建类似的东西
public abstract class GenericView<LAYOUTTYPE extends AbstractLayout> extends LAYOUTTYPE
这样
public class MyView extends GenericView<HorizontalLayout>
扩展 GenericView 和 HorizontalLayout 和
public class MyView2 extends GenericView<VerticalLayout>
扩展 GenericView 和 VerticalLayout?
【问题讨论】:
-
在某些情况下这会很简洁,但我怀疑这是否可能。
-
即使可以这样做也没有用。
-
@talex 哦,我不知道——它可能就像多重继承的弱形式,有时可以派上用场。但它带来了危险。
-
@blalasaadri 你期望它如何工作。由于
LAYOUTTYPE中没有关于方法或字段的编译时间信息,因此不会向接口添加任何内容。 -
@talex 实际上有一些编译时信息:它扩展了
AbstractLayout。尽管如此,我确实看到了很多问题 - 例如,多次定义的函数,我们不要忽略类型擦除 - 但我也可以看到为什么有时有人可能想要使用这样的东西。
标签: java class generics extends