Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Независимо от того, что Вы думаете, будет самым эффективным для Вас!
У меня был коллега, который, казалось, использовал другой язык для каждой задачи; Perl для быстрой обработки текста, PHP для маленьких внутренних веб-приложений.NET для нашего основного продукта, cygwin для материала файловой системы. Он предпочел использовать технологию, которая была самой характерной для задачи под рукой.
Лично, я нахожу, что контекстное переключение между технологиями является болезненным. Моя ежедневная работа находится в.NET, таким образом, это - в значительной степени условия, я думаю в. Для большинства задач я нахожу более эффективным поднять что-то в использовании C# SnippetCompiler, чем я был бы для бездельничания в PowerShell или среде сценариев.
Если бы Вы довольны Java, и JRE везде, Вы работаете, то, как я сказал бы, продолжают использовать его. Существуют, однако, языки как жемчуг и Python, которые особенно подходят для быстрого решения проблем. Я предложил бы изучить или жемчуг или Python, и затем использовал бы Ваше решение по тому, когда использовать его.
Если бы у меня есть небольшая проблема, которую я хотел бы решить быстро, я склонен использовать язык сценариев. Налог кода меньше, и для меня, по крайней мере, результат прибывает быстрее.
Я сказал бы, где это имеет смысл. Если это собирается взять Вас дольше для открытия IDE, скомпилируйте сценарий, и т.д., чем это было бы для редактирования файла сценария и сделано с ним, чем файл сценария использования. Если Вы не собираетесь быть изменением вещи часто и более быстры в Java, кодирующем, затем идут тем путем :)
Это обычно более быстро для записи сценариев, чем скомпилированные программы. Вы не должны волноваться так о мобильности между различными платформами и средами. Сценарий оболочки выполнит в значительной степени каждый где на большинстве платформ. Поскольку Вы - Java-разработчик, и Вы упоминаете, что у Вас есть Java везде, Вы могли бы посмотреть отличный (http://groovy.codehaus.org/). Это - язык сценариев, записанный в Java со способностью пользоваться библиотеками Java.
Путем я вижу его (другие не соглашаются), весь Ваш код должен быть удобным в сопровождении. Самый маленький полезный набор кода - это, которое поддерживает единственный человек. Даже это извлекает выгоду из языка и инструментов, которые Вы упомянули.
Однако могут, очевидно, быть задачи, где специализированные языки более выгодны, чем единственный язык общего назначения.
Если можно записать это более быстрый в Java, то пойдите для него.
Просто попытайтесь знать о том, что могут сделать различные языки сценариев.
например, не делайте полноценное приложение Java, когда можно будет сделать то же с остротой удара.
Взвесьте важность инструмента против сования открытого текстовый редактор для быстрого редактирования по сравнению с открытием IDE, перекомпиляции, повторного развертывания, и т.д.
Конечно, основная директива должна быть для "использования независимо от того, что Вы довольны". Если Java делал задание правильно и вовремя, придерживайтесь его. Но много языков сценариев могло сэкономить Вам некоторое время, потому что они настраиваются к различным проблемам. При использовании регулярных выражений языки сценариев являются подходящим вариантом. Если Вы заскакиваете в команды оболочки, сценарии хороши.
Я склонен использовать сценарии Ruby каждый раз, когда я пишу что-то, что это является маленьким, потому что это быстро для записи, легкий поддержать, и (с Драгоценными камнями) легкий к устройству, повышаяющему характеристики, дополнительная функциональность без необходимого для использования БАНОК или чего-либо. Ваш milage будет, конечно, варьироваться.
Я использую языки сценариев для записи программ, которые, как ожидают, не будут сохраняться вне небольшого количества выполнения. Большинство этих языков легко на шаблонном синтаксисе и действительно имеет REPL. Обе этих функции включают быстрое прототипирование.
Так как Вы уже знаете Java, можно попробовать языки JVM как Groovy, JRuby, BeanShell и т.д. Scala имеет намного более легкий синтаксис, чем Java, имеет REPL, со статическим контролем типов и работает на JVM - Вы могли бы дать этому выстрел также.
В конце дня это - вопрос, на который только можно ответить для себя. На основе того, что Вы сказали, "Что я не вижу причины, почему я когда-либо принимал бы решение использовать сценарии оболочки..." затем, вероятно, имеет место, что Вы никогда не должны выбирать его прямо сейчас.
Но на вашем месте я выбрал бы язык сценариев как Python, рубин или жемчуг и начал бы пытаться решить некоторые из этих небольших проблем с этим языком. Со временем Вы будете начинать получать ощущение того, когда будет более уместно записать быстрый сценарий, чем сборка полноценное решение.