Scala 泛型類 泛型函式 上邊界 和下邊界

2021-09-02 10:55:17 字數 1292 閱讀 4681

泛型類:在scala的類中定義引數型別

泛型類的應用場景:對類中的某些成員(field和method中的引數或變數)進行統一的型別限制,從而確保程式的健壯性和穩定性

class mycollection[t]

//刪除

def remove(el:t): unit =

override def tostring = s"mycollection($list)"

}object mycollection

}

泛型函式:類似於泛型類,在宣告函式時指定泛型型別,然後在函式體中,就可以使用這種泛型型別來宣告變數或作為函式的返回值型別,從而強制性對變數或返回值進行型別限制。

class school{}

class student(name:string) extends school{}

class teacher(name:string) extends school{}

class whh(name:string){}

object fundemo

def door[t](per:t): unit =else if(per.getclass == classof[teacher])else

}}

scala中的上邊界定義語法:t <: 父類

package cn.alibaba.scala.genericity

class shool

}class student(stuname:string) extends shool

class teacher(teaname:string) extends shool

class stranger(name: string){}

//定義泛型邊界 最大 為shool

class party[t <: shool](p1:t,p2:t)

object party

}

scala中的上邊界定義語法:t >: 子類

class grande***ther

class father extends grande***ther

class son extends father

class tongxue

object card

def main(args: array[string]): unit =

}

認真看下邊界這段**就會體會到泛型邊界的含義以及控制範圍!

C 泛型約束,泛型函式

class 泛型 sortss new sort 例項化乙個排序類 ss.sortt pr 呼叫排序函式 foreach pression ppr in pr 測試泛型函式 int a 5 console.writeline a a int b 9 console.writeline b b n p...

scala的泛型類

泛型類 scala的類也可以定義泛型。接下來,我們來學習如何定義scala的泛型類 定義 語法格式 class 類 t val 變數名 t 定義乙個泛型類,直接在類名後面加上方括號,指定要使用的泛型引數 指定類對應的泛型引數後,就使用這些型別引數來定義變數了 示例 示例說明 實現乙個pair泛型類 ...

反射類呼叫做引數呼叫泛型函式

假設我們有以下的泛型方法 public t fun 如果t有很多,那通常的方法是使用swich進行判斷 var classname string var obj new object swich classname 解決方案 上面的寫法會導致大量的冗餘 我們想要如下的解決方案,通過傳入類的名字來動態...