首页 > 解决方案 > 你能强制泛型类型也泛型吗?

问题描述

假设你有一个泛型类

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() { ... }

}

标签: javagenerics

解决方案


推荐阅读