NullPointerException - gdzie jest błąd?

0

Mam interfejs Executable, posiadający m. in. metodę public String getCode(). Posiadam dwie klasy implementujące ten interfejs:

  • Code
  • Block
    Fragment klasy Code - konstruktor i metoda getCode():
private String code;
public Code(String code) {
 this.code = code;
}
public String getCode() {
 return this.code;
}

Fragment klasy Block zawierającej zbiór obiektów implementujących Executable:

private Executable[] ex;
public Block(Executable[] ex) {
 this.ex = ex;
}
public String getCode() {
 String ret = "";
 for (int i = 0; i < ex.length; i++) {
  ret += (ex[i].getCode() + "\n"); //Ta linia zwraca NullPointerException
 }
 return ret;
}

Tworzę tablicę 3 obiektów klasy Code i sprawdzam, następnie tworzę blok i otrzymuję wyjątek:

Code[] codes = new Code[3];
codes[0] = "{";
codes[1] = "test";
codes[2] = "test2";
for (int i = 0; i < codes.length; i++) {
 System.out.println(codes[i].getCode());
}
Block b = new Block(codes);
System.out.println(b.getCode()); //NullPointerException
1

Ponizszy kod mi sie nie kompiluje:

codes[0] = "{";
codes[1] = "test";
codes[2] = "test2";

Zmienilem na:

codes[0] = new Code("{");
codes[1] = new Code("test");
codes[2] = new Code("test2");

U mnie wszystko dziala jak nalezy. Sprawdz dokladnie czy to co masz w kodzie odpowiada temu co napisales na forum.

dodanie znaczników <code class="java"> - fp

0

Jakim cudem ten wiersz

codes[0] = "{";

działa?
Po lewej stronie jest Code, a po prawej String.

0

Przepraszam, źle przepisałem. W kodzie jest tak, jak napisał @tk

1 użytkowników online, w tym zalogowanych: 0, gości: 1