トップページ > プログラム > 2020年08月02日 > HWQVFDgv0

書き込み順位&時間帯一覧

17 位/158 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000210000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ ce01-Nz8z)
★★Java質問・相談スレッド183★★

書き込みレス一覧

★★Java質問・相談スレッド183★★
425 :デフォルトの名無しさん (ワッチョイ ce01-Nz8z)[]:2020/08/02(日) 13:47:16.78 ID:HWQVFDgv0
>>424
ジェネリクスの配列は作れないんよ

>>420
> 自然に、なぜ以下のように書かないのかという疑問が思い浮かびます。
> Stack<String>[] a = (Stack<String>[]) new Object[N];

実行できないからでしょ
Objectの配列をStackの配列にキャストできないから
実行時にObjectになるのはジェネリクスの型であってStackではないです
★★Java質問・相談スレッド183★★
426 :デフォルトの名無しさん (ワッチョイ ce01-Nz8z)[]:2020/08/02(日) 13:53:28.09 ID:HWQVFDgv0
> When using generics, Java checks for type safety at compile time,but throws away that information at run time,

ジェネリクスを使うとき
Javaはコンパイル時に型の安全性をチェックします
しかし、実行時にはその情報を破棄します

と、いうことなので
ジェネリクスの型が正しいかはコンパイル時にチェックされて
実行時にはジェネリクスの型の情報はありませんよという
ジェネリクスの型のイレイジャを説明してるんだと思います
★★Java質問・相談スレッド183★★
429 :デフォルトの名無しさん (ワッチョイ ce01-Nz8z)[]:2020/08/02(日) 14:42:16.64 ID:HWQVFDgv0
>>428
> 型の安全性とは、=の左右の型が一致しているということですか?

左右の一致もそうだけどジェネリクスの型が関わるところはすべて
Javaは静的型付き言語なので型は実行前に決まるからコンパイルが通ったら
型の不整合は存在しないってこと

> 実行時には、型が安全であったかどうかという情報を破棄するというのは、どうしてそうするのですか?

イレイジャ方式を採用してるから、なぜイレイジャ方式なのかは過去のものとの互換性のためらしい
詳しくはこのあたりを参照いただければ
贖罪のイレイジャ - プログラマーの脳みそ
https://nagise.hatenablog.jp/entry/20160520/1463744926

> なぜ、コンパイル時に行う処理と実行時に行う処理に分けるのですか?

イレイジャ方式を採用してるから実行時にキャストが必要になる


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。