問題タブ [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.
java - 警告: [未チェック] 未チェックのキャスト。ジェネリック
チェックされていないキャストの警告が表示されます。警告を解決する方法がわかりません。
コンパイラ エラーlist = (E[]) new IntKeyed [size];
は、文字ごとに使用すると想定されるコードを選択しているようです。
ジェネリックを使用しようとしているため、「E」です。
したがって、このコードのどこかでおかしくなったに違いないと思います。エラーを調べたところ、 に対処しているように見えましたが、私の知る限りArrayLists
では を使用していません。ArrayList
多分私はすべきArrayLists
ですか?それを変更すると、警告が修正されますか? また、コードの例外処理が不完全であるという問題もあります。しかし、それはアレイの問題から切り離されていると思います。
あなたが見つけることができるエラーは、私を正しい方向に向けるのに役立ちます. ありがとう。
でコンパイルすると、次のjavac -Xlint:unchecked MyArrayList.java
ようになります。
java - Java:ジェネリック型のキャスト、どうすればこれを修正できますか?未チェックの警告を抑制しないようにするにはどうすればよいですか
以下の行でそれを呼び出すと問題なく動作し、JavaPlugin を拡張しないクラスを使用しようとすると、コンパイル時にエラーがスローされます。しかし、上記の関数が必要なく機能するようにするにはどうすればよいです@SuppressWarnings("unchecked")
か??
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 は正当なのですか? 実際に将来の開発者を助ける意味のあるコメントは何ですか?それは事実上、「ただ私を信頼してください」以上の意味がありますか?
java - クラスからのチェックされていないキャスト
私はこのコードを持っています:
そして、それは私にそれを教えてくれます
これを正しい方法で解決するにはどうすればよいですか?
ありがとう!
編集:
スーパークラスのコード:
java - 二重拡張クラスを持つジェネリックでチェックされていないキャストを回避しますか?
私は次のコードを持っています。これ<T extends Buffer>
は、本当に意味することを理解しているので、今日これにリファクタリングしたばかりです。簡略化されたバージョンは次のとおりです。
で警告が発生しました。Buffer.create()
警告を抑制しても安全ですか? より安全にする方法はありますか?
もう 1 つの要件は、この API の呼び出し/使用コードに乱雑さを追加しないことです。具体的には、これは、DynamicDrawArrayBuffer
ジェネリックがアタッチされていない可能性があることを意味します。