Простая ошибка нулевой ссылки, которая убивает меня (Java) - PullRequest
0 голосов
/ 12 декабря 2010

Хорошо, поэтому я возиться с кодом в Java и получаю странную ошибку. У меня есть мой класс Chaos, у которого есть переменная Window FSW, также общедоступная. Теперь у меня есть другой класс под названием Look. Хаос создает Look, а затем запускает метод Look.Init (). Этот метод init запускает метод look run, который пытается сослаться на переменную FSW своего родительского Chaos.

Проблема в том, что независимо от того, как я узнал об этом, когда я ссылаюсь на переменную -any- из Chaos из Look, переменная имеет значение null = /. Я могу вызывать методы Chaos из Look подкласса, но я не могу ссылаться на переменные.

Вот ссылка на сайт текстового хостинга, если кто-то думает, что мне необходимо будет экспортировать и загрузить пакет, я думаю, что это произойдет, но я чувствую, что это может быть просто тем, чего я не вижу, это очевидно.

http://www.text -upload.com / read.php? Т = 1790

1 Ответ

2 голосов
/ 12 декабря 2010

Ваша проблема в том, что вы фактически не ссылаетесь на переменную из Chaos, а ссылаетесь на переменную из Look.

т.е. вы создаете новый объект Look () с его собственным экземпляром FSW, который по умолчанию инициализируетсяк нулю, это никогда не устанавливается внутри Look

Если вы хотите сослаться на переменную в Chaos, я предлагаю вам передать объект Chaos в конструктор Look.

Итак, вы можете поместить новыйдобавьте конструктор хаоса и добавьте конструктор, подобный этому

public Look(Chaos chaos){
   this.chaos = chaos
}

Внутри Хаоса при создании Look вы затем выполните

new Look(this)

Внутри Look вы можете ссылаться на chaos.FSW

...