2012-02-14 14 views
3

私はJTreeを使用していますが、Enumeratorを使用してツリーをトラバースしています。スウィング、JTreeトラバーサル、列挙子の警告

TreeModel columnTreeModel = columnTree.getModel(); 
TreeNode columnTreeRoot = (TreeNode) columnTreeModel.getRoot(); 
Enumeration<TreeNode> columnTreeEnumerator = 
    ((DefaultMutableTreeNode) columnTreeRoot).breadthFirstEnumeration(); 

このコードの3行目に警告が表示されます。警告は

どのように私はこの警告を再現しますか?

答えて

6

DefaultMutableTreeNodeが存在するので、Java 1.2、Java Genericsが1.5以降です。そのため、メソッドbreadthFirstEnumerationの結果に型パラメータがないため、それは「生の」列挙です。 TreeModelと同じです。入力されたルートノードを返すパラメータ化されたTreeModelを記述すると、キャストする必要はありません。しかし、スウィングが設計された時点ではそれは不可能でした。

タイプを変更せずに(サブクラス化など)この警告を解決することはできません。 @SuppressWarnings("unchecked")アノテーションを設定するだけで(その理由を文書化してください)、警告は消えます。

+1

ここに例があります(http://stackoverflow.com/a/8210759/230513)。 – trashgod

+0

パーフェクト。ありがとうございました :) – Achilles

関連する問題