请查看此类:
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语言做到这一点吗?
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之类的库