, если вы можете сделать это, измените код на:
(РЕДАКТИРОВАТЬ: слишком рано утром .... Забыть слово окончательный: -)
private final SomeControl control;
Вам нужно будет выполнить «control = new ......» в конструкторе, но если вы хотите, чтобы он был назначен только в одном месте, это способ заставить компилятор вам помочь. 1006 *
Кроме того, вы уверены, что исключение NullPointerException отсутствует в вызове метода?
это показывает someProperty, как будто это было
null, в чем здесь может быть проблема?
Исходя из этого, я предполагаю, что неправильно понял, что вы говорили ... Вы говорите, что вызов метода someProperty () возвращает ноль? Если это так, то сделайте следующее:
- в классе SomeControl пометить переменную someProoerty как окончательную (если это возможно). Это означает, что у вас не может быть метода setProperty (....).
- если вы не можете сделать окончательную переменную, добавьте следующий код в метод setProperty (...):
...
public void setPropert(... value)
{
if(value == null)
{
throw new IllegalArgumentException("value cannot be null");
}
}
тогда вы увидите, какая часть кода устанавливает свойство в null.