Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Платформа Spring является удивительно общей целью. Я запустил, просто используя его в качестве инструмента управления конфигурацией, но затем понял, как полезное внедрение зависимости при выполнении разработки через тестирование. Затем я медленно обнаруживал много полезных модулей, скрытых в углах Spring.
Google Collections API довольно удобен при использовании большого количества, ну, в общем, Наборов...
Могло бы стоить сказать, что первое, что нужно сделать, узнают библиотеки в более новых версиях Java. Много идей работало их путь назад в Java - java.util.concurrent, java.nio, и javax.xml
JXL для создания/выпуска рабочей книги Excel. Я работаю в банке, и многоцелевым инструментом отчета для работы дневника является Excel. Независимо от того, что приложение, которое мы делаем, должно импортировать/экспортировать из Excel. Единственный сбой, которым случается так, что это имеет проблемы памяти с большими рабочими книгами и форматированием, это немного неясно
Функциональный Java предлагает первоклассные значения функции, неизменные списки/массивы, ленивые/бесконечные потоки, типы "кортеж", любой типы, дополнительные значения (безопасная с точки зрения типов альтернатива пустому указателю). Работы хорошо в сочетании с Google Collections или java.util наборами.
Это также обеспечивает удобные абстракции параллелизма как параллельные стратегии, параллельные функторы списка/массива, параллелизм агента и компонуемые легкие процессы.
Смотрите на jmate проект. Это содержит действительно полезные методы для строк, наборов и операций IO (на данный момент).
Посмотрите некоторые примеры здесь.
lambdaj - это библиотека, безопасная для потоков статических методов, которые предоставляют внутренний DSL для манипулирования коллекциями псевдофункциональным и статически типизированным способом без явного их повторения. Это устраняет необходимость писать (часто плохо читаемые) циклы при итерации по коллекциям.