Enumeration<DefaultMutableTreeNode> allGenres = node.children();
node是一个javax.swing.tree.DefaultMutableTreeNode
此语句用作枚举包含
的所有子项
节点但会引发警告:未经检查的转换
我无法弄清楚消除警告的正确语法。
答案 0 :(得分:0)
在Java中,经过检查和未经检查的转化是指通用类型在作业的两侧都不匹配时:ClassType<T> ct = var.method();
其中var.method()
返回的类型为ClassType
而不是{{1} }}
Java API表示ClassType<T>
返回node.children()
类型的对象,而不是Enumeration
。因此,如果您确定基础类型是什么,或者将返回值分配给常规Enumeration<WhateverTreeNode>
(javac编译器仍可能会抱怨),您可以转换方法调用:(Enumeration<WhateverTreeNode>)node.children()
最有可能的是,您必须告诉编译器忽略这些警告,因为它们是如何编写底层javax代码的。
This related question和the Oracle Java Tutorial on Raw Types可能有助于您了解已检查和未检查的转化。