Java Tips и лучший способ избежать nullponintexception в приложении Java
В приложении Java Nullponintexception (исключение NULL Pointer) является лучшим решением (задача). В то же время нулевой указатель также является ключом к написанию надежного и плавного бега кода. Фраза «профилактика лучше, чем лечение», также применима к неприятным нульпонинтексам. Применяя методы защитного кодирования и следующие соглашения между несколькими частями, вы можете избежать NullPointexception в значительной степени. Следующие советы Java могут минимизировать изображения! = нулевой код для такого типа проверки. Как опытный программист Java, вы можете понять, что некоторые из этих технологий используются в некоторых проектах. Но для первых студентов колледжа и промежуточных разработчиков это отличная возможность обучения.
Это некоторые простые методы, которые легко выучить, но они действительно важны для качества кода и надежности. По моему опыту, только первый трюк сыграл большую роль в улучшении качества кода.
1) Call Ecy () и EqualsingNoreCase () на существующей строке (строка) вместо неизвестных объектов
Обычно, equals () уже вызывается на непустых строке. Поскольку метод равного () симметричный, вызов aqual () эквивалентен вызова B.eecal (), и именно поэтому многие обращают внимание на объекты A и B, если одна сторона пустота вызовет нулевый указатель.
Object UnknownObject = null; // Неправильный путь - может вызвать NullPointerExceptionif (inknownObject.equals ("insokeObject")) {System.err.println ("Это может привести к нулевым точкам. System.err.println («Лучшее кодирование избегало nullpointerexception»);}Это самый важный трюк Java, чтобы избежать NullPointexception, но результат будет огромным улучшением, потому что Ecoud () является очень распространенным методом.
2) Когда оба возвращают один и тот же результат, значение () является предпочтительным вместо toString ()
Потому что пустой объект бросит NullPointexception при вызове ToString (). Если мы сможем получить одинаковое значение, вызывая Value (), мы должны использовать значение (). Это пройдет нулевое значение. Особенно в случаях уроков упаковки, таких как Integer, Float, Double или BigDecimla.
Bigdecimal bd = getPrice (); System.out.println (String.valueof (bd)); // не бросает npesystem.out.println (bd.toString ()); // бросает "исключение в Thread" Main "java.lang.nullPointerException"
Если вы не уверены, пуст ли объект, который вы используете, используйте этот трюк Java
3) Используйте нулевой безопасный метод или библиотеку классов
Есть много компонентов с открытым исходным кодом, которые теперь проверены для вас. Одним из самых распространенных является Apache's Stringutils. Вы можете использовать stringutils.isblank (), isnumberic (), iswhitespace () и другие инструменты, не беспокоясь о методах Nullpointexception.
System.out.println (stringutils.isempty (null)); System.out.println (stringUtils.isblank (null)); System.out.println (stringUtils.isnumeric (null)); System.out.println (StringUtils.isalluppercase (null);
Но не забудьте прочитать документацию о нулевых методах и классах безопасности, прежде чем сделать какие -либо выводы. Это еще одна лучшая тренировка на Java, которая не потребует от вас приложить большие усилия, но сделает вас большим успехом.
4) Избегайте возврата пустой коллекции или пустого массива вместо возвращения NULL из метода
Эта техника Java также упоминается в «Эффективной Java» Джошуа Блоха. Эта книга также является источником для улучшения возможностей кодирования Java. Вернув пустую коллекцию или пустого массива, можно определить, что основные вызовы, такие как размер () и длину (), не будут бросать NullPointexception. Класс коллекции может предоставить удобный пустой список, установить и карту, (они) иметь коллекции. EMPTY_LIST, Collections.empty_set и Collections.empty_Map, и их можно использовать (статические переменные).
Код выглядит следующим образом;
Общедоступный список Getorders (клиент клиент) {list result = collections.empty_list; результат возврата; }Точно так же вы можете использовать collections.empty_list, collections.empty_set и collections.empty_map вместо возвращения NULL.
5) Комментарий с @notnull и @nullable
При написании вы можете определить нуляцию соглашения, вы должны запустить, является ли этот метод безопасным, используя такие комментарии, как @notnull и @nullable. Современные компиляторы, IDE и другие инструменты могут прочитать этот комментарий, чтобы помочь вам сделать пустую проверку или сказать, нужен ли вам пустая проверка. Intellijide и Findbugs уже поддерживают эту аннотацию. Эти комментарии также являются частью JSR 305 (примечание переводчика: это можно понимать как стандарт Java). Видя @notnull и @nullable, программисты могут решить, делать ли пустой чек. Кстати, это новая лучшая практика для программистов Java, хотя для адаптации требуется немного времени.
6) Следуйте конвенциям и определите разумные значения по умолчанию
В поле Java один из лучших способов избежать нулевых указателей - заключать соглашения и соблюдать их. Большинство Nullpointexceptions происходит потому, что они используют неполную информацию или не предоставляются всеми зависимостями для создания объектов. Если вы не разрешаете создавать неполные объекты и отмените какие -либо такие требования, вы можете предотвратить множество NullPointexceptions, которые возникают через некоторое время. Если объект разрешено создавать, то вам следует установить разумное значение по умолчанию. Например, объект сотрудника не может быть создан без атрибутов идентификатора и имени, но он может иметь дополнительный номер Pghone. Если у сотрудника нет номера телефона, верните 0 вместо возврата нулевого значения. Но этот вид обработки должен обрабатывать проверку нулевых значений очень тщательно, чем проверять незаконную вход. Также обратите внимание, что при определении нулевого значения или нет, напомните абоненту принять обоснованное решение. Выбор или принятие нулевых значений после сбоя также является важным дизайном, на который вам необходимо обратить внимание.
7) Если вы используете базу данных для хранения объекта домена (Demain Object)
Например: клиент, заказы и т. Д., Тогда вы должны определить некоторые ограничения на нулевые значения в базе данных. Поскольку база данных может потребовать данных из нескольких источников, проверка нулевых значений в базе данных обеспечит целостность данных. Сохранение ограничений на нулевые значения в базе данных также позволит вам уменьшить нулевую проверку на Java. Когда вы берете объект из базы данных, вы можете убедиться, что эти свойства могут быть пустыми, и эти свойства не могут быть пустыми, что минимизирует код для этих пустых проверок.
8) Используйте режим пустого объекта
Это еще один способ избежать NullPointexception в Java. Если метод возвращает объект, который вызывающий абонент хочет итерации над объектом, который, как вызывающий абонент должен использовать некоторые методы, аналогичные collection.iterator () для возврата итератора. Если у вызывающего не нет ни одного из вышеперечисленных методов, возможно, что пустой объект возвращается вместо нуля. Пустой объект - это специальный объект, который имеет разные значения в разных контекстах. В тех случаях, когда подобные методы возвращают противоколенность или тип подключения, пустой объект (пустой объект) внутри следует использовать вместо возвращения пустых.