EN JP CN

JD.CAST.KEY

JD.CAST.KEY

JD.CAST.KEY は、コレクションの要素を取得するために使用されるキーのタイプが、オブジェクトをコレクションに配置するために使用されるキーのタイプと異なる場合に報告されます。

脆弱性とリスク

このタイプのキーを使用してコレクションに配置された要素がないため、目的の要素はコレクションで見つかりません。

軽減と防止

コレクションにさまざまなタイプのキーが含まれると推測されるかどうかを確認してください。コレクションの要素を取得するために使用するキーのタイプが正しいかどうかを確認してください。

例 1

11 public class JD_CAST_KEY_Sample_1 {
12 
13     HashMap len=new HashMap();
14 
15     void fill(File dir){
16       File[] list = dir.listFiles();
17       for (int i = 0; i < list.length; i++) {
18         File file = list[i];
19         len.put(file, new Long(file.length()));
20       }
21     }
22 
23     int getLength(String file){
24       Long l = (Long) len.get(file);
25       if (l!=null) return l.intValue();
26       return 0;
27     }
28 }

JD.CAST.KEY が 24 行目の 'len.get(file)' の呼び出しに対して報告されています。コレクション要素の取得に使用される 'java.lang.String' タイプは疑わしいキータイプです。オブジェクトは、'java.io.File' タイプのキーでコレクションに配置されています。

関連チェッカー