你能强制泛型类型也是泛型的吗?

时间:2020-12-25 18:49:39

标签: java generics

假设你有一个泛型类

class MyClass<T> { ... }

您可以通过编写来强制 T 分别扩展或实现类或接口

class MyClass<T extends ThisClassOrThisInterface> { ... }

您甚至可以通过对 ThisClassOrThisInterface 进行抽象,使这个构造完全参数化,即

class MyClass<U, T extends U> { ... }

我的问题是:有没有办法强制 T 成为参数化类型?例如,以某种方式

class AnotherClass extends MyClass<List<?>>

应该没问题,因为 List 是一个泛型类型,但是

class AnotherClass extends MyClass<Object>

不应,因为 Object 不能在任何类型上参数化。


我试图了解泛型可以玩多少。特别是,我试图实现以下类(假设 <T<?>> 强制 T 为泛型类型):

class MyClass<T<?>> {

    <A> Function<A, T<A>> myMethod() { ... }

}

0 个答案:

没有答案
相关问题