Scala实现多种泛型类型

mah*_*454 2 scala

请查看此类:

class MainClass(firstName:String) extends GenericClass[(Int,String,Long)](firstName,"David")
class GenericClass[T](str1: String, str2: String)    
Run Code Online (Sandbox Code Playgroud)

Scala如何实现并将多个类型映射到单个泛型类型?
我的意思是GenericClass仅具有一个Single类型,GenericClass[T]但MainClass对此进行了扩展并实现了多个类型GenericClass[(Int,String,Long)]

我在光滑的orm上学习了这段代码:

class Suppliers(tag: Tag) extends Table[(Int, String, String, String, String, String)](tag, "SUPPLIERS") { ... }
Run Code Online (Sandbox Code Playgroud)

可以用Java语言做到这一点吗?

Bog*_*nko 5

GenericClass[T]具有类型参数T。该参数可以用任何类型替换。在您的情况下GenericClass[T],通过元组(Int,String,Long)对参数进行了参数化,该元组只是的语法糖Tuple3[Int,String,Long],因此您可以将其替换为另一个,而无需进行任何更改:

class MainClass(firstName:String) extends GenericClass[Tuple3[Int,String,Long]](firstName,"David")
Run Code Online (Sandbox Code Playgroud)

注意:Tuple3是一种具有三种类型参数的类型。没有多种类型。

据我所知,在Java中没有等效的tuple类,但是您可以自己创建它,也可以只使用javatuples之类的