2012-02-14 6 views
3

JTree을 사용하고 있고 Enumerator을 사용하여 트리를 탐색 중입니다.Swing, JTree 통과, 열거 자 경고

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

이 코드의 3 행에서 경고 메시지가 표시됩니다. 경고는

이 경고를 어떻게 다시 표시합니까?

답변

6

DefaultMutableTreeNode이 Java 1.2부터 존재하므로 1.5 이후 Java Generics가 존재합니다. 따라서 breadthFirstEnumeration 메서드의 결과에는 형식 매개 변수가 없으므로 "원시"열거 형입니다. TreeModel과 동일합니다. 입력 된 루트 노드를 반환하는 매개 변수화 된 TreeModel을 작성할 수 있으므로 전송할 필요가 없습니다. 그러나 Swing이 설계되었을 당시에는 불가능했습니다.

유형을 변경하지 않고 (예 : 서브 클래 싱)이 경고를 "해결할"수 없습니다. @SuppressWarnings("unchecked") 주석을 설정하고 (왜 그렇게했는지 문서화하십시오) 경고가 사라집니다.

+1

[여기] (http://stackoverflow.com/a/8210759/230513)의 예가 있습니다. – trashgod

+0

완벽. 고맙습니다 :) – Achilles