JD.CAST.KEY

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

脆弱性とリスク

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

軽減と防止

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

例 1

コピー
 public class JD_CAST_KEY_Sample_1 {
 
     HashMap len=new HashMap();
 
     void fill(File dir){
       File[] list = dir.listFiles();
       for (int i = 0; i < list.length; i++) {
         File file = list[i];
         len.put(file, new Long(file.length()));
       }
     }
 
     int getLength(String file){
       Long l = (Long) len.get(file);
       if (l!=null) return l.intValue();
       return 0;
     }
 }

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

関連チェッカー