Ненужный осмотр бокса, сообщаемый IDE
Ненужный осмотр бокса, сообщаемый 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, как я видел, многие разработчики обсуждают ее или используют ее в последнее время.
Кроме того, поскольку бокс не требуется, что нужно заменить новым Integer (5) на?
Ответы
Ответ 1
Благодаря автобоксированию в 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}
};