Mon code est quelque chose comme:Comment initialiser un objet d'une classe?
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
}
}
Et je reçois un message d'erreur semblable à:
Exception in thread "Foo" java.lang.NullPointerException
à quelle que soit la ligne de Foo j'essaie d'appeler une fonction ou à la valeur de la barre de classe. Comment puis-je empêcher la barre [] d'être nulle?
EDIT: Après quelques manipulations, j'ai finalement réussi à le réparer, merci à tous! Cependant, je ne pouvais pas appeler le constructeur pour arranger les choses; J'ai dû créer une autre fonction et appeler cette fonction depuis Main (dans mon cas, la classe Foo est en fait la classe Main, si cela a vraiment de l'importance). Mon résultat final:
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;
}
}
Quelqu'un veut-il m'aider avec cela, ou suis-je censé créer une autre question? :)
De la même manière que vous le faites toujours: initialisez-le pour pointer vers un objet sur le tas. – duffymo
Si vous voulez de l'aide avec votre code, vous devrez nous montrer le code qui cause réellement le problème, pas un autre code qui, selon vous, représente le problème, mais il manque des bits vitaux et ne compile même pas. –
@Michael Merci, je le ferai la prochaine fois – wrongusername