8
スカラ型境界システムを理解する上で問題があります。私は何をしようとしていることは、私がこれまで持っているどのようなタイプAの項目を反復処理することができますタイプTの項目を保持するホルダークラスを作るです:スカラ型パラメータの境界
class HasIterable[T <: Iterable[A], A](item:T){
def printAll = for(i<-item) println(i.toString)
}
val hello = new HasIterable("hello")
自体は正常にコンパイルクラスが、作成しようとしました私はその場合のHasIterable[String, Char]
として解決するためにhello
を期待しているだろう
<console>:11: error: inferred type arguments [java.lang.String,Nothing] do
not conform to class HasIterable's type parameter bounds [T <: Iterable[A],A]
val hello = new HasIterable("hello")
^
:hello
値は私に、このエラーが発生します。この問題はどのように解決されますか?
うあなたはなぜこれがうまくいくのかを説明しています。 – dhg
これは私のために働いた、ありがとう!そして、なぜ、<%はこの場合に働きますか?私はあなたの編集を見る。ありがとう:) – Dylan
@pelotom:素晴らしい説明。ありがとう! – dhg