Zrobię nowym postem bo chciałbym dodać nową kwestię.
package Table;
import java.util.*;
class CreateTable {
private int ts;
private int [] table;
private Scanner in = new Scanner(System.in);
public void StworzTablice () {
TableSize tabSize = new TableSize();
table = new int[tabSize.getSize()];
}
public void WypelnijTablice() {
for (int i=0; i<table.length; i++) {
table[i] = in.nextInt(); <--- Tutaj Eclipse wskazuje NullPointera
}
}
Nie rozumiem czemu wywala mi podczas kompilacji tej części NullPointera? Wszystkie zmienne są zainicjowane. Tablica "Table" ma określoną wielkość, którą pobiera z metody getSize() z innej klasy.
Źle coś przekazuję? Metody, które odpowiadają za wielkość tablicy to:
public void inSize() {
elIn = in.nextInt();
}
// Pobiera rozmiar tablicy
public int getSize() {
return elIn;
}
Gdy zmieniam StworzTablice() tak:
class CreateTable {
private int ts;
private int [] table;
private Scanner in = new Scanner(System.in);
TableSize tabSize = new TableSize();
public int StworzTablice (int indeks) {
table = new int[StworzTablice(tabSize.getSize())];
return table.length;
}
To mam całą litanię błędów, ale pierwszym jest "Exception in thread "main" java.lang.StackOverflowError".
A main() wygląda tak:
public static void main(String [] args) throws NullPointerException {
TableSize rozmiar = new TableSize();
ViewTable vt = new ViewTable();
CreateTable ct = new CreateTable();
rozmiar.inSize();
vt.NTable(rozmiar.getSize());
System.out.println("Elementy tablicy");
ct.WypelnijTablice();
//vt.VTable();
}
}
EDIT Finalny: Wybaczcie, że tak po milion razy edytowałem, ale w trakcie oczekiwania na odpowiedź ciągle jeszcze główkowałem nad tym kodem. Generalnie udało mi się dojść co powodowało problem i już to naprawiłem.