7

JSON.simpleを使用して、Java から JSON 出力を生成しています。しかし、jsonobj.put("this", "that") を呼び出すたびに、Eclipse で警告が表示されます。

型の安全性: メソッド put(Object, Object) は生の型 HashMap に属します。ジェネリック型 HashMap への参照はパラメーター化する必要があります

JSONObject がジェネリック化されている場合は、クリーンな修正になりますが、ジェネリック化されていないため、これを修正するためにジェネリック型パラメーターを追加することはできません。できるだけ少ない警告をオフにしたいので、多くのメソッドに「@SuppressWarnings("unchecked")」を追加するのは魅力的ではありませんが、警告を我慢する以外に他のオプションはありますか?

4

3 に答える 3

7

ここに 1 つのオプションがあります。少し見にくいですが、抑制された警告の範囲をその個々の操作のみに限定できます。

チェックされていないキャストを実行する関数を追加し、警告を抑制します。

@SuppressWarnings("unchecked")
private final static Map<Object,Object> asMap(JSONObject j)
{
  return j;
}

次に、コンパイラの警告なしで呼び出すことができます。

asMap(jsonobj).put("this", "that");

このようにして、実際に表示したい警告を抑制していないことを確認できます。

于 2010-04-15T15:48:01.983 に答える
4

プロジェクトごとのコンパイラ設定を行うことができ、それらの警告を無視するように変更できます。

于 2010-04-15T15:25:41.187 に答える
4

ライブラリのいくつかのヘルパー メソッドまたはラッパー クラスを記述します。@SuppressWarnings("unchecked")これらのヘルパーにのみを追加します。次に、ヘルパーを使用してライブラリとの対話を実行します。

于 2010-04-15T15:37:03.810 に答える