1

警告を受けるコード:

HashSet<MyBean> beanies = StatusUtil.getStatus(myBeanList);

呼び出すメソッド:

public static HashSet<MyBean> getStatus(List<MyBean> servers){      
   HashSet<MyBean> set = new HashSet<MyBean>();
   return set;
}

はい、これは Eclipse の正確なコードです。これが大量の情報ではないことはわかっていますが、コードは警告を生成すべきではないように思えます。それが役立つなら、Eclipse Indigoです。プロジェクトをクリーニングしても何も起こりません。Eclipse を再起動しても何も起こりません。

編集:HashSet Eclipseが実際に「型の式は、準拠するには未チェックの変換が必要」と言っていることに最初に注意する必要がありましHashSet<MyBean>た。したがって、メソッドが HashSet として定義されていることを認識しているようですが、私の戻り変数もそうであることに気付いていません...

4

1 に答える 1

1

Eclipse Indigo のバグが原因のようです。このエラーは、Eclipse でデフォルトのワークスペース設定を切り替えて Java 7 をコンパイラーとして使用したときに最初に発生しました。すべてのプロジェクトで Java 7 を強制的に使用する必要がある、他の可能な Java コンパイラをすべて削除しました。これは にありますProject->Properties->Java Compiler。Configure というリンクがありますWorkspace Settings。この時点での個々のプロジェクトはすべて「コンプライアンスレベル」は1.7で、これは私が予想していたものです。ただし、「プロジェクト固有の設定を有効にする」をチェックしてJava 7に設定するまで、上記の私の回答で述べたエラーは消えませんでした。ワークスペースのデフォルトとして設定した利用可能なコンパイラが1つしかない場合、これはバグです。コンパイラ、および私のプロジェクトでプロジェクト固有の設定が有効になっていない場合、明らかにそのコンパイラを使用する必要があります。ただし、プロジェクト固有の設定を有効にすると、上記の警告メッセージが消えました。

于 2013-04-16T16:33:45.340 に答える