[mustang/Java SE 6] 次世代Javaの動向 4 [dolphin]
■ このスレッドは過去ログ倉庫に格納されています
0068デフォルトの名無しさん
2006/11/26(日) 00:58:36プログラミング言語関係の用語のcovariance・contravariance
は、共変・反変と訳することが多い。varianceの訳語は
聞いたことが無いので、よくわからない
で、covarianceの意味だがここで言われてる文脈では
ある型AとBとパラメータ型Tについて、
A <: B => T<A> <: T<B> ( A <: B は AがBのサブタイプであるという意味)
が成立するとき、Tはcovariantであると言う。
で、Javaの配列に関して考えてみると
A <: B => A[] <: B[]
がJava言語仕様で決まっているからJavaの配列はcovariantなわけだ
一方、Java Genericsでは上記の命題が成立しないのでJava Genericsの
Generic型はcovriantでは無いというわけ
■ このスレッドは過去ログ倉庫に格納されています