Java扩展通用指定类型

Java扩展通用指定类型,java,generics,Java,Generics,我是否可以这样做: Class extends <T extends ClassB> 类扩展 只要一个类扩展了泛型指定的类必须扩展的类,就可以让该类扩展该类吗 它的语法/结构是什么?不,这是不可能的。我认为当您使用泛型并以这种方式指定一个类时,这也没有多大意义,因为您只有来自指定类的信息 对于正常使用(例如容器),这是有意义的,因为它允许您依赖特定类或接口的方法,同时能够确保额外的类型安全性。但是,对于扩展类来说,这并没有多大意义,因为您只能依赖ClassB的方法,这在功能上与只

我是否可以这样做:

Class extends <T extends ClassB>
类扩展
只要一个类扩展了泛型指定的类必须扩展的类,就可以让该类扩展该类吗


它的语法/结构是什么?

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

对于正常使用(例如容器),这是有意义的,因为它允许您依赖特定类或接口的方法,同时能够确保额外的类型安全性。但是,对于扩展类来说,这并没有多大意义,因为您只能依赖
ClassB
的方法,这在功能上与只执行
classextendclassb
是相同的

为了让您的想法更有意义,您需要能够接受您定义的类并将类型传递给“extend”。但是,这会有许多与多重继承相同的陷阱如果在传递给泛型的类中(而不是在
ClassB
中)也定义了在
Class
中首先定义的方法,您会怎么做?在Java中没有多重继承是一个设计决策,而拥有这样的泛型将与此背道而驰


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

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

对于正常使用(例如容器),这是有意义的,因为它允许您依赖特定类或接口的方法,同时能够确保额外的类型安全性。但是,对于扩展类来说,这并没有多大意义,因为您只能依赖
ClassB
的方法,这在功能上与只执行
classextendclassb
是相同的

为了让您的想法更有意义,您需要能够接受您定义的类并将类型传递给“extend”。但是,这会有许多与多重继承相同的陷阱如果在传递给泛型的类中(而不是在
ClassB
中)也定义了在
Class
中首先定义的方法,您会怎么做?在Java中没有多重继承是一个设计决策,而拥有这样的泛型将与此背道而驰


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

我认为由于类型擦除,您将无法执行此操作。例如,您甚至不能这样做:

class A<T> {
    class B extends T {
    }
}
A类{
B类扩展了T类{
}
}

我认为由于类型擦除,您将无法执行此操作。例如,您甚至不能这样做:

class A<T> {
    class B extends T {
    }
}
A类{
B类扩展了T类{
}
}

只是好奇:你到底想完成什么?您能描述一下,如果这种功能确实存在,您将如何使用它,或者为了什么使用它吗?我正在尝试构建一个MVC类结构,我希望基本视图类继承容器方法和属性。但是在扩展类中,我想让类通过JFrame进行扩展。只是好奇:你到底想实现什么?您能描述一下,如果这种功能确实存在,您将如何使用它,或者为了什么使用它吗?我正在尝试构建一个MVC类结构,我希望基本视图类继承容器方法和属性。但在扩展类中,我希望类通过JFrame进行扩展。实际上ClassB是一个容器,我希望能够访问基类上的容器方法和子类中的子类型方法。实际上ClassB是一个容器,我希望能够访问基类上的容器方法和子类中的子类型方法。