Swing,JTree遍历,枚举器警告

Ach*_*les 3 java swing jtree

我正在使用一个JTree,我正在使用一个遍历树Enumerator.

TreeModel columnTreeModel = columnTree.getModel();
TreeNode columnTreeRoot = (TreeNode) columnTreeModel.getRoot();
Enumeration<TreeNode> columnTreeEnumerator =
    ((DefaultMutableTreeNode) columnTreeRoot).breadthFirstEnumeration();
Run Code Online (Sandbox Code Playgroud)

我在此代码的第3行收到警告.警告是

The expression of type Enumeration needs unchecked conversion
    to conform to Enumeration

我如何重新发出此警告?

Hau*_*idt 6

DefaultMutableTreeNode从Java 1.2开始,Java Generics自1.5以来就存在.这就是为什么方法的结果breadthFirstEnumeration没有类型参数,它是一个"原始"枚举.同样的TreeModel.您可以编写一个TreeModel返回类型化根节点的参数化,这样您就不需要进行强制转换.但在Swing设计的时候,这是不可能的.

您无法在不更改类型的情况下"解析"此警告(例如,子类化).只需设置一个@SuppressWarnings("unchecked")注释(并记录你为什么这样做),警告就会消失.