【问题标题】:Swing , JTree Traversing , Enumerator WarningsSwing , JTree 遍历 , 枚举器警告
【发布时间】:2012-03-05 17:07:35
【问题描述】:

我正在使用JTree,我正在使用Enumerator 遍历树。

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

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

Enumeration 类型的表达式需要未经检查的转换 符合枚举

我该如何重新接受这个警告?

【问题讨论】:

    标签: java swing jtree


    【解决方案1】:

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

    如果不更改类型(例如子类化),您将无法“解决”此警告。只需设置 @SuppressWarnings("unchecked") 注释(并记录您这样做的原因),警告就会消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 2011-09-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2016-06-08
      • 2015-08-19
      相关资源
      最近更新 更多