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, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)
Существует также другой выбор для IDE Java. Вы, очевидно, нашли Eclipse, но также можно хотеть проверить IntelliJ и NetBeans. IntelliJ не свободен, но имеет 30-дневный испытательный срок и контурную карту Visual Studio:)
Присматриваются к ценам, находят тот, который Вы любите и начинаете использовать его в большой степени. Они - все очень хорошие IDE, и я уверен, как только Вы используете тот некоторое время, Вы станете довольными им.
Вы попытались использовать привязки клавиш Visual Studio, доступные в Eclipse Ganymede (3.4)?
(Можно хотеть знать, что "IntelliSense" является термином Visual Studio, вероятно, неизвестный любому без опыта Visual Studio. "Автозавершение" является, вероятно, более широко использованным термином.)
Если Вы начнете вводить имя какого-либо класса/переменной, видимого в текущей области, и поразите Ctrl+Space, это снизит автозавершение.
По умолчанию, вкладка используется для перемещения автоматически заполненных аргументов вызова функции.
Я собираюсь играть, дьяволы защищают здесь и говорят, что то, чтобы вынуждать Вас использовать this.myString
на самом деле намного более безопасно, чем всего myString
. myString
мог быть определен локально (в методе) или в классе как член парламента, не занимающий официального поста. Я иногда думаю, что Visual Studio является немного всадником об этом. В образце Вы упоминаете (я посмотрел видео, но это было неразборчиво), где myString
ограничены по объему?