【发布时间】:2014-09-18 05:02:03
【问题描述】:
在 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 中编译?
【问题讨论】:
-
你想做什么?
-
也许您正在寻找Generics?
-
我正在尝试从函数 apply() 返回 T 类型的值
-
我想你应该探索一下 java.util 包。
-
也许您可以编辑问题以用文字解释 Scala 代码的作用;目前,该问题只能由两种语言的专家来回答。
标签: java scala generics type-parameter traits