【发布时间】:2014-08-12 13:20:26
【问题描述】:
IDE 报告的不必要的装箱检查
我最近查看了一些发布在 Oracle 教程上的有关 Swing#JTable 的代码。 IntelIJ 返回了一些警告消息,这些消息是关于在保存表数据的多维数组中对原始变量进行装箱的。
这是从docs.oracle.com中找到的数组:
Object[][] data = {
{"Kathy", "Smith",
"Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe",
"Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black",
"Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White",
"Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown",
"Pool", new Integer(10), new Boolean(false)}
};
所有包装变量都收到此消息:
“不必要的拳击'new Integer(5)' 报告“拳击”,例如在对象中包装原始值。在 Java 5 和更新版本下,装箱是不必要的,可以安全地删除。 此检查仅报告项目或模块是否配置为使用 5.0 或更高的语言级别。”
我知道 Java 中的装箱和拆箱的概念,我的问题是为什么它在较新版本的 Java 中是“不相关”,因为我看到许多开发人员最近讨论或使用它.
另外,由于不需要装箱,应该用什么替换'new Integer(5)'?
【问题讨论】: