1. 程式人生 > >Scala中當引數超過22時,通過實現Product特質

Scala中當引數超過22時,通過實現Product特質

在使用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] }