問題タブ [unchecked-cast]

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 投票する
2 に答える
1351 参照

java - 警告: [未チェック] 未チェックのキャスト。ジェネリック

チェックされていないキャストの警告が表示されます。警告を解決する方法がわかりません。

コンパイラ エラーlist = (E[]) new IntKeyed [size];
は、文字ごとに使用すると想定されるコードを選択しているようです。
ジェネリックを使用しようとしているため、「E」です。

したがって、このコードのどこかでおかしくなったに違いないと思います。エラーを調べたところ、 に対処しているように見えましたが、私の知る限りArrayListsでは を使用していません。ArrayList

多分私はすべきArrayListsですか?それを変更すると、警告が修正されますか? また、コードの例外処理が不完全であるという問題もあります。しかし、それはアレイの問題から切り離されていると思います。

あなたが見つけることができるエラーは、私を正しい方向に向けるのに役立ちます. ありがとう。

でコンパイルすると、次のjavac -Xlint:unchecked MyArrayList.java ようになります。

0 投票する
1 に答える
112 参照

java - Java:ジェネリック型のキャスト、どうすればこれを修正できますか?未チェックの警告を抑制しないようにするにはどうすればよいですか

以下の行でそれを呼び出すと問題なく動作し、JavaPlugin を拡張しないクラスを使用しようとすると、コンパイル時にエラーがスローされます。しかし、上記の関数が必要なく機能するようにするにはどうすればよいです@SuppressWarnings("unchecked")か??

0 投票する
1 に答える
96 参照

java - Copyable getObjectCopy() に関して、チェックされていないキャストが問題ない理由を正当化する方法

(これは私の前の質問へのフォローアップです。)

というインターフェースがありCopyable、これには単一の機能があります

これは、他の多くのクラスで使用されます。この関数は常に を返すためCopyable、未チェックのキャストが発生します。例:

私の質問は、Josh Bloch の推奨事項に関するものです (Effective Java、第 2 版、項目 24)。

@SuppressWarnings("unchecked") アノテーションを使用するたびに、安全な理由を説明するコメントを追加してください。

彼の例は

(9/117 ページの下部を参照してください: http://www.infoq.com/resource/articles/bloch-effective-java-2e/en/resources/Bloch_Ch05.pdf )

私はこのアイデアが好きで、一緒にやりたいですgetObjectCopy()

私のコメントは不自由に思えますが、これ以上のことは思いつきません。それが私の質問です:なぜこの unchecked-cast は正当なのですか? 実際に将来の開発者を助ける意味のあるコメントは何ですか?それは事実上、「ただ私を信頼してください」以上の意味がありますか?

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

java - クラスからのチェックされていないキャスト

私はこのコードを持っています:

そして、それは私にそれを教えてくれます

これを正しい方法で解決するにはどうすればよいですか?

ありがとう!

編集:

スーパークラスのコード:

0 投票する
2 に答える
44 参照

java - 二重拡張クラスを持つジェネリックでチェックされていないキャストを回避しますか?

私は次のコードを持っています。これ<T extends Buffer>は、本当に意味することを理解しているので、今日これにリファクタリングしたばかりです。簡略化されたバージョンは次のとおりです。



で警告が発生しました。Buffer.create()警告を抑制しても安全ですか? より安全にする方法はありますか?

もう 1 つの要件は、この API の呼び出し/使用コードに乱雑さを追加しないことです。具体的には、これは、DynamicDrawArrayBufferジェネリックがアタッチされていない可能性があることを意味します。