在 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不采用类型参数。
当然,如果我允许复制一些代码,这可能没有必要,但要制作更通用的代码,我认为它是必不可少的。