- 899 名前:デフォルトの名無しさん mailto:sage [2017/10/08(日) 00:02:28.18 ID:CO5NODlU.net]
- >>885,887
できねーよ。 >Factory<DBConnection>型をパラメータとして要求するメソッドに対して >Factory<OracleDBConnection>オブジェクトを直接渡せるってことだ >List<object>にList<string>を代入できる これが出来るのはFactory<T>/Factory<U>やList<T>/List<U>が共変のときのみ。 それを緩めるのがjavaの上限境界ワイルドカード型。 >>898 それじゃモナドだろ。変性の話な。 変換の話ししてんのはID:Wf+VpSRVだけだから型変換は忘れろ。 おまえらPECS理解してなさすぎ。ポケモンで説明してやるよ。 List<? extends ゼニガメ>があった時このリストに入るのはゼニガメ、カメール、カメックス。これが上限境界ワイルドカード型。 set<T super ピクシー>(T value)というメソッドのときピクシー、ピッピ、ピィが入力できるんだよ。これが下限境界ワイルドカード型。 ValueT<?> value = foo.get<ポッポ>()とあった場合は?はポッポに変身したメタモン。これが非境界ワイルドカード型。 ただし、非境界ワイルドカード型はjavaの場合は型消去されてすべての型のsuper typeを表すObject型になる。つまりに何にも変身してないメタモンのまま。 これはjavaがnone-reifiableだからでreifiableな言語ならポッポに変身したメタモンならポッポのまま。
|

|