下限境界についての質問です。
まずコードをご覧ください。
class Creature
class Animal extends Creature
class Cat extends Animal
class Container[+T] {
def foo[T1 >: T](x: T1): T1 = x
}
val c: Container[Animal] = new Container[Cat]
c.foo("hello") // これがなぜ可能なのか?
T1はTもしくはTのスーパークラスということで、
Cat,Animal,Creature,AnyRef,Anyが可能なことはわかります。
しかしなぜAnyRefのサブクラスであるStringまで可能なのでしょうか?
それに加え、これでは範囲が広すぎるため必要性が無い気がします。
どうしたら範囲を絞れるのでしょう?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/19 13:07