Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Вы читали wiki FAQ затмения, Каково различие между командой и действием?
Вы, вероятно, уже понимаете, что Действия и Команды в основном делают то же самое: Они заставляют определенную часть кода выполняться. Они инициированы, главным образом, от artificats в пользовательском интерфейсе
основное беспокойство с [1 121], Действия состоят в том, что проявление и код все хранятся в Действии .
, Хотя существует некоторое разделение в Делегатах Действия, они все еще подключены к основному иску. События выбора передаются Действиям так, чтобы они могли изменить свое включенное состояние (программно) на основе текущего выбора. Это не очень изящно. Также для размещения действия с определенной частью инструментальных средств необходимо использовать несколько точек расширения.Команды в значительной степени решают все эти проблемы. Основная идея состоит в том, что Команда является просто абстрактной идеей некоторого кода, который будет выполняться. Фактическая обработка кода сделана, ну, в общем, обработчиками . Обработчики активируются определенным состоянием инструментальных средств. Это состояние запрашивается выражениями ядра платформы. Это означает, что нам только нужна одна глобальная команда Save, которая ведет себя по-другому, на основе которого обработчик в настоящее время активен.
Этот статья детализирует различия
Действия :
Команды включают больше точек расширения, но:
Просто добавив к превосходному ответу VonC, команды могли бы быть небольшим излишеством, если Ваше приложение является относительно небольшим. Их относительно более трудно установить, и они сияют больше всего, когда у Вас есть разнообразные перспективы, редакторы и представления.
Для чего-то простого, я пошел бы с действиями.
is x < 0
, you' ve теперь получил булевскую переменную, итак, почему Вы тогда производите целое число, которое должно будет тогда быть преобразовано в bool для соответствия возвращаемому аргументу?
– Peter Nimmo
23 October 2013 в 01:19
И помните, что Action может быть устаревшим в более поздних версиях Eclipse. Я предлагаю вам использовать Command с самого начала.