IndexOutOfBounds?

Hallo Leute,

Ergänze gerade eine Methode und bekomme dauernd folgende Fehlermeldung.
habe erst angefangen Java zu lernen also kann sein es ist irgendwas ganz offensichtliches.
Ich weiß es hat irgendwas mit dem Array zu tun aber ich weiß nicht was.:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
at chesspieces.Pawn.getMoveFields(Pawn.java:36)

hier der Code:
Java:
public Point[] getMoveFields() {
            
    
        boolean frei = isFrontClear();
        
        if (frei == true) {
            Point[] begehbares = new Point[1];
            begehbares[0] = new Point(getX(),getY()+1);
            begehbares[1] = new Point(getX(),getY()+2);
            return begehbares;   
        }
        
        else return null;
 
Dein Array hat die Größe 1 und du versuchst auf zwei Indizes zuzugreifen.

Beachte: Bei der Erzeugung des Arrays wird die Größe angegeben, nicht der höchste Index.

new Point[1] hat genau ein Element mit dem Index 0.
 
Point[] begehbares = new Point[1];
Damit wird ein Array der Größe 1 initialisiert. Es gibt also nur ein Element im Array und dieses hat den Index 0 (in Java beginnt man bei 0 zu zählen). Mit begehbares[1] versuchst Du, auf das 2. Element des Arrays zuzugreifen. Da dieses nicht existiert, gibt es die Exception.
 
ohgott…...es funktioniert! Und ich sitze hier 2 stunden und such nach irgendwelchen komplizierten Fehlern in der main. Ich dachte immer wenn man Arrays erstellt wird halt einfach bei null angefangen zu zählen bis zu der zahl die man als Größe angegeben hat....ich könnte mich ohrfeigen.
DANKE!
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben