Java枚举通用

时间:2016-02-15 18:26:39

标签: java generics

Enumeration<DefaultMutableTreeNode> allGenres  = node.children();  

node是一个javax.swing.tree.DefaultMutableTreeNode 此语句用作枚举包含
的所有子项 节点但会引发警告:未经检查的转换 我无法弄清楚消除警告的正确语法。

1 个答案:

答案 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 questionthe Oracle Java Tutorial on Raw Types可能有助于您了解已检查和未检查的转化。

相关问题