Java 在这个Table类中,括号语法是什么意思?
代码粘贴如下:Java 在这个Table类中,括号语法是什么意思?,java,scala,playframework-2.0,slick,Java,Scala,Playframework 2.0,Slick,代码粘贴如下: class Suppliers(tag: Tag) extends Table[(String, String, Int, String)](tag, "suppliers") { def snum = column[String]("snum") def sname = column[String]("sname") def status = column[Int]("status") def city = column[String]("city
class Suppliers(tag: Tag) extends Table[(String, String, Int, String)](tag, "suppliers") {
def snum = column[String]("snum")
def sname = column[String]("sname")
def status = column[Int]("status")
def city = column[String]("city")
def * = (snum, sname, status, city)
}
我知道第一个括号(tag:tag)
表示供应商的参数列表
,第二部分表[(String,String,Int,String)]
表示带有泛型的超类
但是(标记为“供应商”)
是什么意思?它是超类表的装饰器
还是定义的类供应商
。有关于这个的文档吗?它只是调用表[(String,String,Int,String)]的构造函数。
表的构造函数接受一个标记和一个字符串。extends Table(标记“suppliers”)只是将所需的值连接到构造函数中(可以选择添加类型归属)。这是一种标准的Scala机制。它是一个与以下内容等效的构造函数:
class Suppliers(tag: Tag) extends Table[(String, String, Int, String)]{
def snum = column[String]("snum")
def sname = column[String]("sname")
def status = column[Int]("status")
def city = column[String]("city")
def * = (snum, sname, status, city)
def this(tag:Tag) {
super(tag, "suppliers")
}
}