我正在 build 一个动物农场,每只 pig 、牛和马都有自己的名字。
我选择将动物放置在数组的哪个位置,然后输入名称。
但是我无法正确打印数组。
它是如何完成的?
这是错误:
Exception in thread "main" java.lang.NullPointerException
at Bondegard.main(Bondegard.java:58)
我只尝试过一种动物,所以其他两种动物还没有完成。
这是我的代码:
import java.util.Scanner;
public class Bondegard
{
static Gris[] grisebinge = new Gris[10];
static Hest[] stall = new Hest[5];
static Ku[] fjos = new Ku[30];
public static void settInnGris(Gris g)
{
Scanner in = new Scanner(System.in);
System.out.println("Hvor vil du sette in grisen? (0-9) ");
int index = in.nextInt();
for(int i=0; i<grisebinge.length; i++)
{
if(grisebinge[index] != null)
{
System.out.println("Plassen er opptatt");
index = in.nextInt();
}
else if(grisebinge[index] == null)
{
System.out.println("Hva heter grisen din?");
Scanner inn = new Scanner(System.in);
String temp = inn.nextLine();
grisebinge[index]=g;
grisebinge[index].setGrisNavn(temp);
break;
}
}
}
static void settInnHest(Hest h) { }
static void settInnKu(Ku k) { }
public static void main(String[]args)
{
Gris g = new Gris();
settInnGris(g);
settInnGris(g);
settInnGris(g);
settInnGris(g);
settInnGris(g);
for(int i=0; i<grisebinge.length; i++)
{
System.out.println(grisebinge[i].getGris());
}
}
}
我的 Gris 类(class)是
public class Gris {
private String grisHeter;
public String getGris()
{
return grisHeter;
}
public void setGrisNavn(String m)
{
grisHeter=m;
}
}
最佳答案
您只向 grisebinge
添加了 5 头 pig ,因此剩余 5 个元素仍然是 null
。当您尝试在末尾打印它们的名称时,您正在尝试对 grisebinge
中的所有 10 个元素调用 getGris()
,即使是那些 null
.
在 null
上调用方法将导致 NullPointerException
。
关于java - 如何从数组中打印出对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26129596/