Wie Initialisiere ich ein zweidimensionales array?
public class example
{
static class point
{
int x;
int y;
}
static void main(String args[])
{
point p = new point();
point[] p1 = new point[5];
point[][] p2 = new point[5][5];
p.x = 5; //No problem
p[0].x = 5; //When I run the program, it gives error:java.lang.NullPointerException
p[0][0].x = 5; //When I run the program, it gives error:java.lang.NullPointerException
}
Wie kann ich die initialisieren, S.[].x und p[][].x?
verwenden Sie bitte immer CamelCase für Sie Klassennamen.
Array-Elemente initialisieren der default-Wert für den bestimmten element-Typ. Was ist der default-Wert des Objekts? Warum meinen diese führen zu einer NULL-PointerException?
-1 da gibt es keinen Unterschied zwischen einem 1 -, 2-und 42-dimensionales array. Als Entwickler ist es entscheidend, isolieren Sie den [real] - problem.
Suche nach:
möglich, Duplikat der NullPointerException beim Erstellen ein array-Objekt
Array-Elemente initialisieren der default-Wert für den bestimmten element-Typ. Was ist der default-Wert des Objekts? Warum meinen diese führen zu einer NULL-PointerException?
-1 da gibt es keinen Unterschied zwischen einem 1 -, 2-und 42-dimensionales array. Als Entwickler ist es entscheidend, isolieren Sie den [real] - problem.
Suche nach:
[java] [array] NullPointerException
führt zu viele Duplikatemöglich, Duplikat der NullPointerException beim Erstellen ein array-Objekt
InformationsquelleAutor Sakit Atakishiyev | 2012-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie manuell initialisieren, das ganze array und alle Ebenen, wenn mehrstufig:
Ja, Sie müssen. Verwenden Sie eine doppelte for-Schleife. Keinen wirklichen Unterschied auf die Anzahl der Dimensionen, jedes element existiert, aber alles hält null-Referenz bei der Erstellung.
InformationsquelleAutor Matzi
Denken Sie an es auf diese Weise; wenn Sie das tun
new point[5]
(Sie befolgen sollten, coding-standards und benennen Sie Ihre Klassen mit einem Großbuchstaben ersten Brief btw.), Sie erhalten ein array mit jedes element wird der default-Wert für diesen Typ (in diesem Fall null). Das array wird initialisiert, aber wenn Sie möchten, dass die einzelnen Elemente des Arrays initialisiert werden, müssen Sie das auch tun, entweder in der ersten Zeile wie diese:(Mit der oben beschriebenen Methode erstellt ein array mit jedem element bereits initialisiert der minimalen Größe, in denen diese Elemente - in diesem Fall 2.)
Oder per Schleife durch das array und die addition der Punkte manuell:
Diese beiden Konzepte erweitert werden, um multi-dimensionale arrays:
Oder
InformationsquelleAutor Thor84no
Wenn Sie bauen ein array von Objekten, das array selbst gebaut, aber die einzelnen Elemente sind mit null initialisiert. Also, vorausgesetzt
Point()
ist der Konstruktor, die Sie wollen,InformationsquelleAutor Dilum Ranatunga
Es ist die
point
Objekt.Diese
point
Objekt ist ein 1D-array. Es hältpoint
Objekt-Referenzen. Sollten Sie einepoint
Objekt und halten Sie in das array wie -Und für einen 2D-array -
InformationsquelleAutor Subhrajyoti Majumder