2016-11-09 15 views
0

- 私は、ジェネリック、ここではクラスジェネリック型は、オペレータ

object Utils { 

    implicit class optionUtils(option: Option[Any]) { 
    def sortedList[T]:List[T] = { 
     val list:List[T] = option.get.asInstanceOf[List[T]] 
     list.sorted[T] 
    } 
    } 
} 

そして、ここで呼び出し

jsonResponse.get("products").sortedList[String] 

を使用して、暗黙的なクラスを作成しようとしている。しかし思わコンパイルされていないソートのように並べ替えコンパイラは言う。

Error:(8, 18) not enough arguments for method sorted: (implicit ord: scala.math.Ordering[T])List[T]. 
Unspecified value parameter ord. 
     list.sorted[T] 
      ^

どのように動作させるか考えてください。

よろしくお願いいたします。

答えて

4

Tが注文可能なタイプに限定されていることをコンパイラーに知らせる必要があります。

def sortedList[T: Ordering]:List[T] = { ... 
+0

すごい華麗な男!,私はそれを実現することはありませんが、今は完全なセンスを持っていることが分かります。 – paul