有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    您可以指定语言目标级别和字节码目标级别。通过这种方式,您可以使用特定版本的所有语言功能,并针对特定的vm版本进行编译。我用以下设置测试了您的示例:语言级别7,字节码版本6,它编译得很好

    但是您仍然需要针对jdk 7编译它,因此编译器知道JCombobox是通用的