Generics Java 7和Java 6中的JComboBox安全类型差异

Generics Java 7和Java 6中的JComboBox安全类型差异,generics,jcombobox,java-7,type-safety,java-6,Generics,Jcombobox,Java 7,Type Safety,Java 6,我正在使用一个可以在Java6和Java7平台上编译的项目。 其中一个GUI类使用JComboBox。 由于JComboBox将Java 7中的规范更改为泛型类型,因此需要对组件进行参数化声明 在Java 6中,声明如下: JComboBox mybox; 没有问题,没有错误,没有警告 在Java 7中,相同的组件声明会给出警告 JComboBox is a raw type. References to generic type JComboBox<E> should be pa

我正在使用一个可以在Java6和Java7平台上编译的项目。 其中一个GUI类使用JComboBox。 由于JComboBox将Java 7中的规范更改为泛型类型,因此需要对组件进行参数化声明

在Java 6中,声明如下:

JComboBox mybox;
没有问题,没有错误,没有警告

在Java 7中,相同的组件声明会给出警告

JComboBox is a raw type. References to generic type JComboBox<E> should be parameterized
JComboBox是原始类型。对泛型类型JComboBox的引用应该参数化
按照Java 7的要求提供参数:

JComboBox<String> mybox;
jcombox-mybox;
消除了Java 7平台的警告,但我在Java 6中得到了编译错误


在这种情况下,我能做些什么,使Java平台6和7都能在我的项目中和平共处?

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

我不喜欢将警告留在代码中。这是唯一的方法吗?Java 6不会在这个类上使用泛型进行编译,因此您没有太多选择:保留警告或删除警告,这取决于您个人的喜好,我会抑制它们并创建一个记录单以记住以后处理它们。在方法体中,您可能还需要@SuppressWarnings(“未选中”)