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

标签 java arrays class object

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

相关文章:

java - 可以在 Kotlin 中使用 LocalDateTime 作为 RequestParam 吗?

java - 如何使用java查找给定序列数组列表中的缺失元素?

c++ - 指向方法父参数的子类方法指针 C++

c++ - 在 C++ 中应该如何声明类字段?

java - 如何在 Spring Boot 中使用 Jackson 将 JSON 对象数组解析为 DTO

java - 在第 3 方类上更改 json 属性 jackson 的字段

javascript - 拼接数组中的值并将拼接后的值推送到另一个数组中

javascript - 检查哪些数组元素具有空值

c++ - 使用 getline() 从文本文件中读入行并将 push_back 读入对象 vector

java - PropertyPlaceholderConfigurer 类中的locations 属性