Java 7和Java 6中JComboBox安全类型的区别

4
我正在使用一个可以在Java 6和Java 7平台上编译的项目。其中一个GUI类正在使用JComboBox。由于JComboBox在Java 7中更改了其规范以支持泛型类型,因此需要对组件进行参数声明。
在Java 6中,声明如下:
JComboBox mybox;

“is okay and gives no errors, no warnings.” 的意思是“没有问题,没有错误或警告。”
“在Java 7中,同样的组件声明会出现警告。”
JComboBox is a raw type. References to generic type JComboBox<E> should be parameterized

提供Java 7所请求的参数:
JComboBox<String> mybox;

“eliminates warnings for Java 7 platform, but I get the compilation error in Java 6.”的翻译是“消除Java 7平台的警告,但我在Java 6中得到编译错误。”
“在这种情况下,我该怎么办,以便我的项目可以让Java 6和7两个平台和平共处?”
1个回答

2
您可以使用@SuppressWarnings("rawtypes")来忽略泛型警告。请注意,getSelectedItem没有使用泛型。一旦您完全转向Java 7,请删除/修复警告。

我不喜欢在代码中使用 SuppressWarnings。 这是唯一的方法吗? - kpoxa
Java 6不支持在这个类上使用泛型,因此您没有太多选择:保留警告或删除它们,这取决于您的个人偏好。我会压制它们并创建一个工单以便日后处理。 - Christophe Roussy
在您的方法体中,您可能还需要使用 @SuppressWarnings("unchecked")。 - kc2001

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接