★★Java質問・相談スレッド156★★
■ このスレッドは過去ログ倉庫に格納されています
0136デフォルトの名無しさん
2012/08/14(火) 09:04:33.89C#とJavaの総称型の違いについて(C#設計者へのインタビュー)
http://matarillo.com/general/hejlsberg_interview.php#s2
javaはVM変更無し路線、C#はCLR変更有り路線
>属性で<E>の実際の静的割り当て型を記録するなら
してないよ
C#のジェネリックはJavaの配列と同様にコンパイル後及び実行時も型に残る
>生成の数行をbytecodeで
その生成の数行のための情報が無いから無理なの
コード変換で可能ならとっくに実装されてるよ
<T> void f(T v)があるとき、new T[]可能ということは、メソッドの実体が型毎に存在する必要がある
C++では完全に静的に、C#ではCLR時点で総称型をそのまま保持して動的に型毎のメソッドの実体を生成している
>new <E>[0]も
new E[0]だから構文解釈の変更は不要
http://ideone.com/310kt
>generic array creation
コンパイラは総称型配列の構文を既に認識していて明確なエラーメッセージを出す
■ このスレッドは過去ログ倉庫に格納されています