2011-10-19 6 views
3

コンパイラからこの警告が出てきますが、少なくとも私にとっては意味がありません。基本的には、それ自身でオブジェクト型であるDefaultListModelにTypeを割り当てることが必要です。私はこの警告の全てを私のコードを通して得ています!警告:[rawtypes]が未処理の型を検出しました:DefaultListModel

C:\Documents and Settings\...\filename.java:345:warning: [rawtypes] found raw type: DefaultListModel 
DefaultListModel lm = (DefaultListModel) jList_DataSetList.getModel(); 
missing type arguments for generic class DefaultListModel<E> 
where E is a type-variable: 
E extends Object declared in class DefaultListModel 

これはどこから来たのかわからない別のものです。 Javaの7、DefaultListModelので、事前

答えて

9

C:\Documents and Settings\...\filename.java:897: warning: [rawtypes] found raw type: JList 
private javax.swing.JList jList_DataSetList; 
missing type arguments for generic class JList<E> 
where E is a type-variable: 
E extends Object declared in class JList 

おかげなどListSet、同様にそれはタイプが期待し、一般的なタイプです:代わりに生DefaultListModelDefaultListModel<SomeClass>

Integerインスタンスを含むはずのリストモデルにStringを挿入できないため、より安全な方法で作業できます。また、モデルから要素を取得するときにIntegerにキャストする必要はありません。

同じではなく、生JListであることの、今も文字列または整数のJListJListあるJListについても同様です。

tutorial about genericsを読んで、javadoc of DefaultListModelをご覧ください。

+0

回答ありがとうございました!私は古いapiのドキュメンテーションから参照していたし、あなたが私の存在を指摘したものを知らなかった!あなたは私の一日を救った! – Sam

+0

私はOpenJDKにそのパッチを寄稿して以来、私はここでそれについてブログしました:http://puces-blog.blogspot.com/2009/11/news-swing-generics-openjdk-jlist-patch.html – Puce

+0

@Puceありがとうございます: - ) – mKorbel

1

誰かは、NetBeans IDE(7.0.1)で、これらの警告を探している場合は(などJListのための)コードを生成して、あなたは、次の手順を実行し、それを修正する方法を、知らない:

  1. GUIエディタ(matisse builder)に移動します。コードタブ
  2. に[プロパティ]ウィンドウへ
  3. 選択(などのJList、)コンポーネント(クリック)
  4. Goが、タイプParametresプロパティに<何か>を書きます。もちろん、「何かが」文字列、またはあなたの対象になります...
1

は式インタフェースでの作業時反射で作業するとき、またはこれが特にひどいデフォルトです@SuppressWarnings(「rawtypes」)

をお試しくださいジェネリックオブジェクトの正確なタイプが隠されているはずのメソッド。私は@Suppressを覚えていたときにClassへのClass参照を変更し始めました。

関連する問題