gpt4 book ai didi

java - 如何从数组中打印出对象?

转载 作者:行者123 更新时间:2023-12-01 17:04:56 27 4
gpt4 key购买 nike

我正在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com