我正在使用一个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
我如何重新发出此警告?
DefaultMutableTreeNode从Java 1.2开始,Java Generics自1.5以来就存在.这就是为什么方法的结果breadthFirstEnumeration没有类型参数,它是一个"原始"枚举.同样的TreeModel.您可以编写一个TreeModel返回类型化根节点的参数化,这样您就不需要进行强制转换.但在Swing设计的时候,这是不可能的.
您无法在不更改类型的情况下"解析"此警告(例如,子类化).只需设置一个@SuppressWarnings("unchecked")注释(并记录你为什么这样做),警告就会消失.