在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做什么?
答案 0 :(得分:6)
不,你遗憾的是不能这样做。 Java没有更高的kinded类型。