Java是否允许类型参数的类型参数?

时间:2014-07-26 12:25:29

标签: java scala generics type-parameter traits

在Scala中你可以做这些事情:

trait A[T]

trait B[C[_] <: A[_]] {
    def apply[T](entity: C[T]): T
}

Java模拟看起来像这样:

interface A<T>

interface B<C<?> extends A> {
   <T> T apply(entity: C<T>): T
}

您可以将B用于任何扩展A的类型,并使用此子类型的类型参数作为方法的输出类型。

但它没有编译,你会用Java做什么?

1 个答案:

答案 0 :(得分:6)

不,你遗憾的是不能这样做。 Java没有更高的kinded类型。