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

我正在使用可以编译
Java 6和
Java 7平台的项目.

其中一个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

提供Java 7请求的参数:

JComboBox<String> mybox;

消除了Java 7平台的警告,但我在Java 6中得到了编译错误.

在这种情况下我能做些什么,所以Java平台6和7都能为我的项目安居乐业?

最佳答案 您可以使用@SuppressWarnings(“rawtypes”)忽略泛型警告.请注意,getSelectedItem未使用泛型.完全使用Java 7后删除/修复警告.

点赞