假设你有一个泛型类
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() { ... }
}