swing Java JComboBox泛型
最近,我阅读了更多关于Java泛型的文章:http://gafter.blogspot.nl/2004/09/puzzling-through-erasure-answer.html,它基本上说Java总是向后兼容的
现在,Java对JComboBox做了什么?用Java7编写的代码,即JComboBox<String> comboBox = new JComboBox<>();
在Java6中应该编译得很好,但随后作为原始类型,因为类型已被删除
然而,正如你在谷歌上搜索时很容易看到的那样,现在有三个不同的问题:
- 首先,Java6不在泛型上编译,而应该使用类型擦除来编译,并将其视为原始类型李>
- 第二,甚至没有使用具体化,所以在Java7中没有任何收获李>
- 第三,使用原始类型的Java7代码给出警告李>
因此,似乎没有正确的方法
问候
# 1 楼答案
您可以指定语言目标级别和字节码目标级别。通过这种方式,您可以使用特定版本的所有语言功能,并针对特定的vm版本进行编译。我用以下设置测试了您的示例:语言级别7,字节码版本6,它编译得很好
但是您仍然需要针对jdk 7编译它,因此编译器知道JCombobox是通用的