Java 2D列表赢得';t在第6个实体后打印
我正在做一个记忆游戏 由于某些原因,我在将数字对打印到控制台时收到此错误消息。这是一个5x5的数字对网格Java 2D列表赢得';t在第6个实体后打印,java,Java,我正在做一个记忆游戏 由于某些原因,我在将数字对打印到控制台时收到此错误消息。这是一个5x5的数字对网格 Exception in thread "main" java.lang.NullPointerException at Views.ConsoleView.<init>(ConsoleView.java:20) at Controllers.MemoryApplication.<init>(MemoryApplication.java:19) at main.mai
Exception in thread "main" java.lang.NullPointerException
at Views.ConsoleView.<init>(ConsoleView.java:20)
at Controllers.MemoryApplication.<init>(MemoryApplication.java:19)
at main.main(main.java:9)
在本节中,您将Tiles数组中的一个条目设置为null
System.out.print(tiles[row][column].getNumber()+ " ");
在本节中,您将对该数组中的每个对象调用getNumber()
函数。其中包括null
值
另外,您的gridMiddle似乎设置为1,我猜这里应该是2(对于5x5网格)错误可能来自Tile类的getNumber()方法。请发布相同的代码。添加了包含getNumber方法的Tile类!这个修好了!谢谢
public ConsoleView(MemoryModel model)
{
Tile[][] tiles = model.getTiles();
System.out.println("--- Console View Memory ---");
for (int row = 0; row < model.getNumberOfRows(); row++)
{
for (int column = 0; column < model.getNumberOfColumns(); column++)
{
System.out.print(tiles[row][column].getNumber()+ " ");
}
System.out.println();
}
System.out.print("----------------------------");
}
package Models;
public class Tile
{
//Fields
private int number;
private boolean selected;
private boolean guessed;
public Tile(int number)
{
this.number = number;
}
//Properties
public int getNumber() {
return number;
}
public boolean isSelected() {
return selected;
}
public boolean isGuessed() {
return guessed;
}
}
if(row == gridMiddle && column == gridMiddle && (row*column)%2 != 0)
{
tiles[gridMiddle][gridMiddle] = null;
}
System.out.print(tiles[row][column].getNumber()+ " ");