Мой код что-то вроде:Как инициализировать объект класса?
public class Foo {
public int a;
Bar[] bar = new Bar[10];
a = bar[0].baz;
}
public class Bar {
public int b;
public Bar() { //I tried doing away with this constructor, but that didn't
//fix anything
b = 0;
}
public int Baz() {
//do somthing
}
}
И я получаю сообщение об ошибке:
Exception in thread "Foo" java.lang.NullPointerException
в зависимости от того, в строке Foo я пытаюсь вызвать любую функцию или значение класса Bar. Как запретить bar [] быть нулевым?
EDIT: После некоторых попыток, я, наконец, исправился, спасибо всем! Однако я не мог вызвать конструктор, чтобы исправить ситуацию; Мне пришлось создать еще одну функцию и вызвать эту функцию из Main (в моем случае класс Foo на самом деле является классом Main, если это действительно имеет значение). Мой конечный результат:
public class Foo {
public int a;
Bar[] bar = new Bar[10];
public Foo() { //this constructor wasn't called for some reason... I checked this
//by using System.out.println... no message was print onscreen
for (int a = 0; a < bar.length; a++)
bar[a] = new Bar();
}
public static void initializeFoo() {
for (int a = 0; a < bar.length; a++)
bar[a] = new Bar();
}
public static void Foo() {
initializeFoo();
a = bar[0].baz;
}
}
Кто-нибудь хочет помочь мне с этим, или я должен создать другой вопрос? :)
То же самое, что вы всегда делаете - инициализируйте его, чтобы указать на объект в куче. – duffymo
Если вам нужна помощь в вашем коде, вам нужно будет показать нам код, который действительно вызывает проблему, а не какой-то другой код, который, по вашему мнению, представляет проблему, но пропускает жизненно важные биты и даже не компилируется. –
@Michael Спасибо, я сделаю это в следующий раз – wrongusername