Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Я думаю практика о хранении кода к 80 (или 79), столбцы были первоначально созданы для поддержки людей, редактирующих код простых терминалов на 80 столбцов или распечаток на 80 столбцов. Те, которые требование главным образом ушло теперь, но существуют все еще допустимые причины сохранить правило на 80 столбцов:
я думаю, что последняя точка является самой важной. Хотя дисплеи увеличились в размере и разрешение в последние несколько лет, , глаза не имеют .
Если бы у нас был один из эти , у нас не было бы этого обсуждения!;-)
, Но серьезно вопросы, которые люди подняли в их ответах, довольно законны. Однако исходный плакат не приводил доводы против предела, просто это, 80 столбцов - лишь немногие.
проблема пользования электронной почтой фрагментов кода имеет некоторую заслугу. Но рассматривая злые вещи, которые большинство почтовых клиентов делает к предварительному форматированному тексту, я думаю, что обертывание строки является только одной из Ваших проблем.
Что касается печати я обычно нахожу, что 100 символьных строк будут очень удобно пригодный на печатную страницу.
Я пытаюсь сохранить свои строки ниже 80 столбцов. Самая сильная причина состоит в том, что я часто использую grep
и less
просматривать свой код при работе в командной строке. Мне действительно не нравится, как терминалы повреждают длинные исходные строки (они, в конце концов, не сделаны для того задания). Другая причина состоит в том, что я нахожу, что выглядит лучше, если все вписывается в строку и не повреждается редактором. Например, имея параметры долгих вызовов функции, приятно выровненных друг ниже друга и подобного материала.
Повреждение в 80 символах - что-то, что Вы делаете в то время как кодирование, не впоследствии. То же с комментариями, конечно. Большинство редакторов может помочь Вам в наблюдении, где предел с 80 символами.
(Это может быть небольшим OT, но в Eclipse, существует опция, которая форматирует код, когда Вы сохраняете его (согласно любым правилам, Вы хотите). Это немного причудливо сначала, но через некоторое время Вы начинаете признавать, что форматирование больше не находится в Ваших руках, чем сгенерированный код.)
Я все еще думаю, что предел не ограничен на визуальной части. Несомненно, мониторы и разрешения являются достаточно большими для показа еще большего количества символов в одной строке в наше время, но она увеличивает удобочитаемость?
, Если предел действительно осуществляется, это - также серьезное основание заново продумать код и не для помещения всего в одну строку. Это - то же с добавлением отступа - если Вам нужно ко многому, выравнивается, Ваш код должен заново продуматься.
Да, потому что даже в этот день и возраст, некоторые из нас кодируют на терминалах (хорошо, главным образом эмуляторы терминала), где дисплей может только отобразить 80 символов. Так, по крайней мере, для кодирования я делаю, я действительно ценю 80 символьных правил.
Я - diffing бок о бок целый день, и у меня нет долбаного' 22-дюймового монитора. Я не знаю, буду ли я когда-нибудь. Это, конечно, малоинтересно для программистов только для записи, наслаждающихся кодирующими стрелку и строками с 300 символами.
Я вещь, не осуществляющая 80 символов, имею в виду в конечном счете переход на новую строку.
IMO, любая длина, выбранная для строки макс. ширины, не всегда, соответствующий и переход на новую строку должен быть возможным ответом.
И это не столь легко, как это звучит.
Это реализовано в jedit
(источник: jedit.org ) , который предлагает переход на новую строку
, Но это горько пропущено в затмении с looong времени ! (с 2003 на самом деле), главным образом потому что переход на новую строку для текстового редактора включает:
Я на самом деле следую подобному правилу для своего собственного кода, но только из-за печати кода к странице A4 - 80 столбцов о правильной ширине для моего желаемого размера шрифта.
, Но это - персональное предпочтение и вероятно не, чем Вы были после (так как Вы хотите, чтобы боеприпасы пошли другим путем).
, Что не делает Вас, подвергают сомнению обоснование позади предела - серьезно, если никто не может придумать серьезное основание, почему это так, у Вас есть хороший случай для того, чтобы удалить его из Ваших стандартов кодирования.
Уже существует много хороших ответов на это, но стоит упомянуть, что в Вашем IDE у Вас могли бы быть список файлов слева и список функций справа (или любая другая конфигурация).
Вы - код, всего одна часть среды.
Я пытаюсь сохранить вещи вниз около 80 символов по простой причине: еще много, чем это означает, что мой код становится слишком сложным. Чрезмерно подробное свойство/имена методов, имена классов, и т.д. наносит столько же ущерба сколько краткие.
я - прежде всего, кодер Python, таким образом, это производит два набора ограничений:
, Когда Вы начинаете достигать двух или трех уровней добавления отступа, Ваша логика становится сбивающей с толку. Если Вы не можете сохранить единственный блок на той же странице, Ваш код становится слишком сложным и хитрым для запоминания. Если Вы не можете сохранить одну строку в 80 символах, Ваша строка становится чрезмерно сложной.
легко в Python записать относительно краткий код (см. codegolf) за счет удобочитаемости, но еще легче записать подробный код за счет удобочитаемости. Вспомогательные методы не являются плохой вещью, ни являются классами помощника. Чрезмерная абстракция может быть проблемой, но это - другая проблема программирования.
, Когда в сомнении на языке как C пишут функции помощника и встраивают их, если Вы не хотите издержки обращения к другой функции и перехода назад. В большинстве случаев компилятор обработает вещи разумно для Вас.
Я расширил свой код до 100 символов, который подходит удобно меньше чем к половине моего экрана на моем MacBook. 120 символов являются, вероятно, пределом, прежде чем строки начнут становиться слишком длинными и сложными. Вы не хотите еще становиться слишком широкими, Вы поощряете составные операторы и глубоко вложенные управляющие структуры.
правое поле является способом природы сказать Вам выполнять дополнительный метод, осуществляющий рефакторинг .
Супердлинные линии более трудно считать. Просто, потому что можно дойти, 300 символов на мониторе не означает, что необходимо делать строки настолько долго. 300 символов также слишком сложны для оператора, если у Вас нет выбора (вызов, которому нужен целый набор параметров.)
я использую 80 символов как правило, но я пойду кроме того, если осуществление его означало бы помещать разрыв строки в нежелательное местоположение.
Как другие сказали, я думаю, что это является лучшим для (1) печати и (2) отображения нескольких файлов рядом вертикально.
Интересно, могло ли это вызвать больше проблем в этот день и возраста. Помните, что в C (и возможно другие языки) существуют правила, как долго имя функции может быть. Поэтому Вы часто видите очень твердо понимаемые имена в коде C. Хорошая вещь состоит в том, что они не используют много пространства. Но каждый раз, когда я смотрю на код на некотором языке как C# или Java, имена методов часто очень длинны, который делает его близко к невозможному для хранения кода в 80 длинах символов. Я не думаю, что 80 символов допустимы сегодня, если Вы не должны быть в состоянии распечатать код, и т.д.
Вы не единственный человек, который собирается поддержать Ваш код.
следующий человек, который делает, мог бы иметь 17-дюймовый экран или, возможно, нуждался бы в больших шрифтах для чтения текста. Предел должен быть где-нибудь, и 80 символов соглашение из-за предыдущих экранных ограничений. Можно ли думать о каком-либо новом стандарте (120) и почему это - хорошая идея использовать это другой тогда, "это что соответствия на моем мониторе в шрифте Xpt?"
Помнят, всегда существуют исключения к каждому правилу так это, у Вас есть конкретная строка или блок кода, который имеет смысл быть больше чем 80 символами затем быть мятежником.
, Но занимают время сначала для размышления, "этот код действительно, что плохо, что он не может жить в 80 символах?"
В Linux, кодирующем стандарт, мало того, что они сохраняют 80 символьных пределов, но и они также используют 8 добавлений отступа пространства.
Часть обоснования - то, что, если Вы когда-либо достигаете правого поля, необходимо рассмотреть перемещение уровня отступа в отдельную функцию.
Это сделает более ясный код, потому что независимо от продолжительностей добавления отступа, более трудно считать код со многими вложенными управляющими структурами.
Другие ответы уже подвели итог вещей приятно, но это также достойно рассмотрения, когда Вы могли бы хотеть скопировать & вставьте некоторый код в электронное письмо, или если не кодируют тогда различное
, Это - время, когда наличие "макс. ширины" полезно.
У меня есть два 20 дюймов 1600x1200 мониторы, и я придерживаюсь 80 столбцов, потому что это позволяет мне отобразить несколько окон текстового редактора бок о бок. Используя '6x13' шрифт (трад xterm шрифт) 80 столбцов поднимают 480 пикселей плюс полоса прокрутки и границы окна. Это позволяет иметь три окна этого типа на 1600x1200 монитор. На окнах шрифт Lucida Console не вполне сделает этого (minimun применимый размер 7 пикселей шириной), но 1280x1024, монитор отобразит два столбца и 1920x1200 монитор такой как , HP LP2465 отобразится 3. Это также покинет немного комнаты в стороне для различного проводника, свойств и других окон из Visual Studio.
Дополнительно очень длинные строки текста трудно считать. Для текста оптимум является 66 символами. Существует точка, где чрезмерно долгие идентификаторы начинают быть контрпродуктивными, потому что из-за них сложно размечать код когерентно. Наглядность и добавление отступа обеспечивают визуальные индикаторы относительно структуры кода, и некоторые языки (Python приходит на ум), добавление отступа использования явно для этого.
Однако библиотеки стандартного класса для Java и.Net склонны иметь превосходство очень длинных идентификаторов, таким образом, нельзя обязательно гарантировать, что был в состоянии сделать это. В этом случае разметка кода с разрывами строки все еще помогает сделать структуру явной.
Примечание, что можно получить версии для Windows '6x13' шрифты Здесь .
Мне нравится ограничивать мою ширину приблизительно 100 символами, чтобы позволить двум редакторам SxS на широкоэкранном мониторе. Я не думаю, что существует любое серьезное основание для предела точно 80 символов больше.
Единственной вещью, которую я осуществляю для пребывания в 80 символах, является мой комментарий.
Лично... Я посвящаю всю свою интеллектуальную мощь (что мало существует) к кодированию права, это - боль для возвращения, и разбиться все в 80 символах ограничивает, когда я мог проводить свое время на следующей функции. Да, Resharper мог сделать это для меня, я предполагаю, но тогда это волнует меня немного, что сторонний продукт принимает решения о моем размещении кода и изменяет его ("Не повреждайте мой код в два HAL строк. HAL?").
Однако я действительно работаю над довольно малочисленной командой, и все наши мониторы являются довольно большими настолько вызывающие беспокойство о том, какие беспокойства мои коллеги - программисты не являются огромным беспокойством, насколько это идет.
Кажется, хотя некоторые языки поощряют более длинные строки кода ради большего количества удара для маркера (стенография если тогда операторы).
Я использую преимущество больших экранов для имения нескольких частей кода друг рядом с другом.
Вы не получите боеприпасов от меня. На самом деле я не хотел бы видеть, что это изменилось, с тех пор в чрезвычайных ситуациях я все еще вижу редкие случаи, где я должен изменить код от текстовой консоли.
Когда у Вас есть последовательность операторов, которые повторяются с незначительными изменениями, может быть легче видеть сходства и различия, если они сгруппированы в строки так, чтобы различия выровнялись вертикально.
я утверждал бы, что следующее намного более читаемо, чем это было бы, если бы я разделил его по нескольким строкам:
switch(Type) {
case External_BL: mpstrd["X"] = ptDig1.x - RadialClrX; mpstrd["Y"] = ptDig1.y - RadialClrY; break;
case External_BR: mpstrd["X"] = ptDig1.x + RadialClrX; mpstrd["Y"] = ptDig1.y - RadialClrY; break;
case External_TR: mpstrd["X"] = ptDig1.x + RadialClrX; mpstrd["Y"] = ptDig1.y + RadialClrY; break;
case External_TL: mpstrd["X"] = ptDig1.x - RadialClrX; mpstrd["Y"] = ptDig1.y + RadialClrY; break;
case Internal_BL: mpstrd["X"] = ptDig1.x + RadialClrX; mpstrd["Y"] = ptDig1.y + RadialClrY; break;
case Internal_BR: mpstrd["X"] = ptDig1.x - RadialClrX; mpstrd["Y"] = ptDig1.y + RadialClrY; break;
case Internal_TR: mpstrd["X"] = ptDig1.x - RadialClrX; mpstrd["Y"] = ptDig1.y - RadialClrY; break;
case Internal_TL: mpstrd["X"] = ptDig1.x + RadialClrX; mpstrd["Y"] = ptDig1.y - RadialClrY; break;
}
Обновление: В комментарии было предложено, чтобы это было более сжатым способом сделать вышеупомянутое:
switch(Type) {
case External_BL: dxDir = - 1; dyDir = - 1; break;
case External_BR: dxDir = + 1; dyDir = - 1; break;
case External_TR: dxDir = + 1; dyDir = + 1; break;
case External_TL: dxDir = - 1; dyDir = + 1; break;
case Internal_BL: dxDir = + 1; dyDir = + 1; break;
case Internal_BR: dxDir = - 1; dyDir = + 1; break;
case Internal_TR: dxDir = - 1; dyDir = - 1; break;
case Internal_TL: dxDir = + 1; dyDir = - 1; break;
}
mpstrd["X"] = pt1.x + dxDir * RadialClrX;
mpstrd["Y"] = pt1.y + dyDir * RadialClrY;
, хотя это теперь помещается в 80 столбцов, я думаю, что моя точка все еще стоит, и я просто выбрал плохой пример. Это действительно все еще демонстрирует, что размещение нескольких операторов на строке может улучшить удобочитаемость.
Необходимо просто сделать это ради всех, у кого нет 22-дюймового широкоэкранного монитора. Лично, я работаю над 17 дюймами 4:3 монитор, и я нахожу что более, чем достаточно широкий. Однако у меня также есть 3 из тех мониторов, таким образом, у меня все еще есть много применимого экранного пространства.
Не только, что, но и человеческий глаз на самом деле имеет проблемы при чтении текста, если строки являются слишком длинными. Слишком легко потеряться, в которой строке Вы идете. Газеты составляют 17 дюймов через (или что-то как этот), но Вы не видите, что они пишут полностью через страницу, то же идет для журналов и других печатных объектов. На самом деле легче читать, если Вы сохраняете столбцы узкими.
Печать моноширинного шрифта в размерах по умолчанию - (на листе А4) 80 столбцов 66 строками.
80 символов являются смешным пределом в эти дни. Разделите свои строки кода, где это имеет смысл, не согласно любому пределу произвольного символа.
Источник форматирования с 80 текстами столбца ранее, чем терминалы на 80 столбцов - перфокарта IBM относится ко времени 1928 ! Это напоминает о (недостоверный) история, что американский железнодорожный индикатор был определен шириной колес каретки в римской Великобритании.
я иногда нахожу его небольшим сжатием, но имеет смысл иметь [приблизительно 113] стандартный предел, так 80 столбцов, которые это.
Вот та же тема, затронутая Slashdot.
И вот олдскульный Оператор Фортрана:
Используйте пропорциональные шрифты.
Я серьезно. Обычно я могу получить эквивалентность 100-120 символов в строке, не жертвуя удобочитаемостью или печатностью. На самом деле это даже легче читать с хорошим шрифтом (например, Verdana) и синтаксической раскраской. Несколько дней это выглядит немного странно, но вы быстро к этому привыкаете.
Я вынуждаю своих студентов сжать в 80 столбцов , таким образом, я могу распечатать их код и отметить его .
И приблизительно 17 лет назад я позволил своему собственному коду расшириться до 88 столбцов, потому что я начал делать все с помощью , Noweb и 88 столбцов - то, что вписывается в приятно печатный документ с помощью Техаса
, я делаю отступ только двумя пробелами, но дополнительная комната замечательна.
Мы недавно сделали обзор. Почти все используют энергия внутренняя часть терминал гнома, и если мы делаем вертикальное разделение, количество столбцов равняется 78 как размеру стандартного шрифта и разрешению экрана 1280x1024.
, Таким образом, все мы согласились на стандарт кодирования с количеством столбцов (приблизительно) 75 символов. Это в порядке.