Java Combo Box Diamond Operator 在源代码 1.6 中不受支持



Background

我开发了一个程序来操作数据库中的数据。然而,这不是我的问题,所以我会直截了当。

我在JFrame上制作了一个组合框,称为"输出重新格式化的数据文件"。组合框应允许用户选择特定月份,以便程序对例如 2016 年 2 月创建的文件进行过滤搜索。

问题所在

选项当然是一年中的几个月。我遇到的问题是,initComponents() 方法中的代码,因为该组合框以"错误红色"下划线!

错误显示:"源 1.6 不支持菱形运算符,请使用源 1.7 或更高版本"。

我不明白的

我假设源代码 1.6 对应于您拥有的 JDK。所以如果你有JDK 1.6,你肯定只有源代码1.6。但是有JDK 1.8和Netbeans 8.0.2,那么为什么Netbeans说我使用源代码1.6呢?

非常感谢任何向我解释这一点的人,因为我已经遇到了这个问题将近 2 个月了。在此期间,我也会做更多自己的研究。

初始化组件

jLabel4.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
    jLabel4.setText("Month");
    jLabel4.setToolTipText("");
    Month_ComboBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }));
    Month_ComboBox.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Month_ComboBoxActionPerformed(evt);
        }
    });

组合框自定义代码

我假设源代码 1.6 对应于您拥有的 JDK。所以如果你有JDK 1.6,你肯定只有源代码1.6。但是有JDK 1.8和Netbeans 8.0.2,那么为什么Netbeans说我使用源代码1.6呢?

嗯,不完全是 - 它对应于您的源代码被编译哪种语言版本。对于后来的编译器来说,能够像你只有早期版本的编译器一样进行编译是很正常的,这样,如果团队中的多个人有不同的版本,你就不会遇到一个人签入另一个人无法编译的代码的情况。

只需更改项目设置以使用源兼容级别 1.8。

最新更新