У меня не так много, чтобы спросить действительно. Черт, я даже не знаю, что должен сказать этот вопрос. В принципе, этот Java-код отлично работает без ошибок компиляции.Странное поведение Java-кода со статическим атрибутом
public class Application {
static String[][] tiles;
public Application() {
tiles = new String[9][9];
}
public static void main(String[] args) {
Application app = new Application();
Grid mines = new Grid();
mines.fillTiles(tiles, 9, 9, 10);
}
}
class Grid {
Random rand;
public void fillTiles(String[][] tiles, int rowSize, int colSize,
int numMines) {
rand = new Random();
int rowIndex;
int columnIndex;
while (numMines > 0) {
rowIndex = rand.nextInt(rowSize);
columnIndex = rand.nextInt(colSize);
tiles[rowIndex][columnIndex] = "M";
numMines--;
}
}
}
Но, когда я удалить строку
Application app = new Application();
от основного метода в первом классе, он бросает NullPointerException на
tiles[rowIndex][columnIndex] = new String("M");
Любая причина, почему?
, потому что плитка является пустой. – proflux