NullPointerException
s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException
. Они наиболее распространены, но другие способы перечислены на странице NullPointerException
javadoc.
Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException
, be:
public class Example {
public static void main(String[] args) {
Object obj = null;
obj.hashCode();
}
}
В первой строке внутри main
я явно устанавливаю ссылку Object
obj
равной null
. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException
, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.
(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Можно вставить содержание пронумерованного или именованного регистра путем ввода CTRL R {0-9a-z"%#:-=.}
. Путем ввода CTRL-R CTRL-W Вы может вставить текущее слово под курсором. См.:
:he cmdline-editing
для получения дополнительной информации.
Скопируйте его как нормальный, затем сделайте Ctrl R " для вставки. Существует много других Ctrl R ярлыки (например, калькулятор, текущее имя файла, содержание буфера обмена). Тип :help c_<C-R>
для наблюдения полного списка.
Тип q:
для вхождения в режим редактирования истории в новом буфере. Тогда отредактируйте последнюю строку буфера и нажмите Enter
для выполнения его.
Или создайте команду в буфере энергии, например, введите ее в буфере:
s/foo/bar/gci
И копия это к именованному регистру, с "ayy
(если курсор находится на той строке!).
Теперь можно выполнить содержание" a
" регистр от Vim Исключая командной строкой с:
:[OPTIONAL_RANGE]@a
я использую все это время.
Как правило, Вы сделали бы это с выбором мыши (возможно Ctrl Ins или Ctrl C после выбора) и затем, когда в строке команды/поиска, щелкнув средней кнопкой (или Сдвиг Ins или Ctrl V ).
Иначе, должен записать Вашу строку команды/поиска в текстовом буфере со всем редактированием, доступным в текстовых буферах, начиная с :
и все, тогда, на строке, сделать:
"add@a
, который сохранит целую командную строку в буфере a
, и затем выполнит его. Это не будет сохранено в истории команд, все же.
Попытка, создающая следующую строку в тексте, буферизуют как пример для нажатий клавиш выше:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
Наконец, можно войти q:
для ввода редактирования истории в текстовый буфер.