Java 扩展一般指定的类型

标签 java generics

无论如何我可以做这样的事情:

Class extends <T extends ClassB>

你能否让一个类扩展一个类,只要该类扩展了一般指定的类必须扩展的类?

它的语法/结构是什么?

最佳答案

不,那是不可能的。我认为这也没有多大意义——当您使用泛型并以这种方式指定一个类时,您只能获得来自您指定的类的信息。

对于正常使用(例如容器),这是有道理的,因为它让您可以依赖特定类或接口(interface)的方法,同时能够确保额外的类型安全。然而,对于扩展一个类来说,这并没有多大意义——因为你只能依赖ClassB的方法,它在功能上等同于只做类扩展 B 类

为了使您的想法更有意义,您需要能够获取您定义的类并传入一个类型以“扩展”。然而,这将有许多与多重继承相同的陷阱——如果首先在 Class 中定义的方法也在您传递给泛型的类中定义,但不是在 中,您会怎么做>B 类?在 Java 中没有多重继承是一个设计决定,而拥有像这样工作的泛型将违背这一点。

简而言之,像这样的东西要么类似于多重继承,要么与普通继承相同。

关于Java 扩展一般指定的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119460/

相关文章:

java - 我可以使用泛型转换此方法吗?

asp.net-mvc - asp.net mvc 通用 Controller

java - 如何将值输入到通用定义的数组列表中?

java - Json存储或分离表

java - 为什么在 Hibernate 中需要在 session.delete() 之后调用 session.flush()?

java - 我们可以将字符串列表添加到 StringArray 中吗?

generics - 开放、封闭、绑定(bind)和非绑定(bind)通用类型

java - 扩展 List 及其泛型

java - 为什么在隐藏 fragment 时有时会得到堆栈跟踪?

java - Jackson 在对丢失的属性(property)进行反序列化期间抛出 NPE