問題タブ [erasure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
16 参照

java - Javaの型消去:型の安全性はどのように保証されますか?

Javaジェネリックの型消去メカニズムに従って、メソッド:

..コンパイルされます

では、型の安全性はどのように確保されるのでしょうか。add は Object を受け取るようになったので、String、Integer、Employee などをすべて Object のサブタイプとして渡すことができます。

0 投票する
0 に答える
49 参照

java - ジェネリック クラス/メソッド内の複数のバインドされた型の消去と暗黙のキャスト

JLS§4.4によると:

境界内の型の順序は、型変数の消去がその境界内の最初の型によって決定され、クラス型または型変数が最初の位置にのみ出現する可能性があるという点でのみ重要です。

次のスニペットを検討してください。

ここに私が持っているいくつかの疑問があります-:

  1. メソッドの消去test(T t)=> test(C t)?
    • この場合、Erasure の計算中に追加の型を削除するのはなぜですか?
  2. Tメソッドの型の暗黙のキャストtest(T t)=> (C & I)?
  3. 理論的には、消去は暗黙のキャストと同じですか?