我最近正在检查一些Oracle教程中发布的有关Swing#JTable的代码。IntelIJ返回了一些警告消息,这些警告消息涉及保存Table数据的多维数组内的原始变量的装箱。
这是找到的数组,它取自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)”替换为什么?
由于Java 5和更高版本中的自动装箱,您不必调用Integer和Boolean构造函数即可手动“装箱”原始值。IDE似乎建议您将代码编写为:
Object[][] data = {
{"Kathy", "Smith", "Snowboarding", 5, false},
{"John", "Doe", "Rowing", 3, true},
{"Sue", "Black", "Knitting", 2, false},
{"Jane", "White", "Speed reading", 20, true},
{"Joe", "Brown", "Pool", 10, false}
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句