Tはoutパラメータだから。...}一般的なルールはこうだ。メンバの出力位置にしか現れない。修飾子は変性アノテーションと呼ばれている。型パラメータの宣言側で提供されるので、宣言側変性であると言える。これはJavaのワイルドカードが利用側変性であるのと対照的だ。Comparable<Number>をComparable<Double>として扱っても問題ない。projection)型Tの利用を戻り値だけとか引数だけに絞れない場合を考えてみよう。共変(covariant)でも反変(contravariant)でもなく不変(invariant)。次の関数を考えてみよう。Array<Any>)を想定してるのにintsが違うここでcopyのfromの型が違うためにコンパイルエラーとなる。ここでのcopyはfromのうち戻り値にTを使ったメソッド(つまりget)しか使わない。これをコンパイラに知らせるために、次のように書ける。fromは戻り値に型パラメータを使うメソッドしか使えないよ。projection)5と呼ばれている。ここでのfromは単なる配列ではなく、制限された(投影された(projected))それ。対応する、我々の利用側変性へのアプローチ。使った投影も同様に使える。destは引数に型パラメータを使うメソッドしか使えないよ。配列を渡せる.Star-projection※ここのオリジナルの説明はわかりにくいので、完全に別の説明に書き換え。