在 Scala 中,您可以这样定义一个类:
class MyClass[T1[T2]] {
def abc(a1: T1[Double]):T1[Int] = ???
}
在这段代码中,类型参数T1
代表一个需要一个类型参数的类型T2
,所以我们可以创建一个类似的实例new MyClass[List]
。
我想用Java做这个,但我不知道。
我想知道在 Java 中是否有可能,如果没有,我想知道如何在 Java 中做这件事。
据我了解,泛型类型本质上是类型的函数。因此,如果您有一个类似 的类List<T>
,您可以认为该类List
是一个类型的函数,因此List
接受一个类似的类型参数Integer
,那么它将是一个具体类型,例如整数列表(List<Integer>
)。
MyClass
上面需要一个类型参数T1
,但我希望这T1
也是一个带类型参数的泛型类型T2
,所以我可以创建一个实例,MyClass<List>
并且可以使用类型List<Integer>
或List<Double>
内部MyClass
。在 Scala 中,如果您尝试MyClass[Int]
或MyClass[String]
将失败,因为Int
或String
不采用类型参数。
当然,如果我允许复制一些代码,这可能没有必要,但要制作更通用的代码,我认为它是必不可少的。