Scala中當引數超過22時,通過實現Product特質
阿新 • • 發佈:2018-11-29
在使用Spark做某些專案時,可能對某寫資料進行分析時,會出現有很多欄位,而Scala中,預設的最大的引數個數是22,因此如果當我們的欄位太多時 ,22欄位不能滿足,我們可以同過實現Product這個特質,實現裡面的方法,可以傳更多的欄位
object Demo01 {
def main(args: Array[String]): Unit = {
val Stu = new Stu(2,"zhangsan",18)
}
}
//這裡只是定義了3個引數,定義過多看起來不太方便就沒寫那麼多
class Stu(id:Int , name:String, age : Int) extends Product{
//進行模式匹配
override def productElement(n: Int): Any = n match {
case 0 => id //引數的下表 對應的引數
case 1 => name
case 2 => age
case _ =>
}
//返回的是傳參的個數
override def productArity: Int = 3
//自定義比較 ,是否包含這個數
override def canEqual(that: Any): Boolean = that.isInstanceOf[ Stu]
}