【问题标题】:Printing Array of objects more concisely更简洁地打印对象数组
【发布时间】:2021-01-19 12:52:47
【问题描述】:

我正在创建一个对象数组,但在打印时遇到了问题

Dog Dogobj[]=new Dog[2]; // Dog objects within this array
Dogobj[0] = new Dog(Age, weight, name); 
Dogobj[1] = new Dog(Age, weight, name);

System.out.println("Dog age?: "+Dogobj[0].Dogtype etc.) 

现在,在创建这些之后,我找不到一种简单的方法来打印这些不是很长的行。这是我发现的唯一方法(上图)——每个对象大约有 10 个变量,所以它们的行很长。

【问题讨论】:

  • 你是否在Dog 类中添加了toString() 方法?

标签: java arrays object printing


【解决方案1】:

你可以这样做:

for (Dog dog : Dogobj) {
    System.out.println(dog); // This way every dog will be printed in a new line
}

当然,实现 Dog 的 toString 方法。

在“狗”类定义中:

@Overrride
public String toString() {
    "Age: " + age + "," +
    "weight: " + weight + ","
    "name: " + name;
}

如果您希望每只狗的成员都打印在新行中,您可以这样实现 toString:

@Overrride
public String toString() {
    "Age: " + age + ",\n" +
    "weight: " + weight + ",\n"
    "name: " + name;
}

【讨论】:

    【解决方案2】:
    1. 在您的 DogObj 类中实现 toString() 方法。在此方法中,您可以返回一个需要从对象打印的字符串。

    2. 在 for 循环中打印对象。

        for (int i = 0; i < Dogobj.length; i++) {
                   System.out.println(DogObj[i]);
               }
    

    【讨论】:

      【解决方案3】:

      使用这个:

        `for(String d : dog)`
      
      1. 列表项:

        {System.out.println(d);}

      2. 或者这个:

      for(int i=0 ; i&lt;dog.length ; i++){ System.out.println(dog[i]);}

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-04
        • 2019-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-20
        • 2021-03-16
        • 1970-01-01
        相关资源
        最近更新 更多