1. 程式人生 > >scala中泛型和隱式轉化

scala中泛型和隱式轉化

隱式轉化

邊寫邊譯模式中:

 

new Person[Int](15,18).max()
class Data(number: Int){
 def show(): Int ={
   print("1"+" "+number)
   2
 }
}
implicit def show(num:Int) = new Data(num)
1.show

 

如果下面這句程式碼,就會報錯,下面這個程式碼就起到了隱式轉換的作用,

implicit def show(num:Int) = new Data(num)

泛型的使用

邊寫邊譯模式中:

 

class Person[M<%Comparable[M]](var x:M,var y:M){
  def max(): Int ={
    x.compareTo(y)
  }
}
new Person[Int](15,18).max()

其中%起到了隱式轉化的作用

本來程式碼是這樣的:

class Person[M<:Comparable[M]](var x:M,var y:M){
  def max(): Int ={
    x.compareTo(y)
  }
}
new Person[Int](15,18).max()

但是發現這裡會報錯,原因是Comparable給泛型一個上限類,所在類需要繼承Comparable,

但是scala中Int沒有繼承該類,將Int換成Integer或String就行

 

 

 

 

new Person[Int](15,18).max()
class Data(number: Int){
def show(): Int ={
print("1"+" "+number)
2
}
}
implicit def show(num:Int) = new Data(num)
1.show