如何打印出存储在数组中的对象实例

时间:2014-11-29 16:18:32

标签: java arrays object tostring instanceof

所以我需要打印出不同的数组实例。使用下面的代码。数组中的所有内容都会打印出数组中未填充任何内容的部分。如果我在每个if语句中添加一个break语句,它只打印该数组的最后一个实例,而不是所有存储的实例。

public static void display(ExampleA[] example)
{ 
    for(int pos = 0; pos < example.length; pos++) 
    {   
        output += "Example number " + (i + 1);
       if(example[pos] instanceof A)
        {
                output += example[pos].toString() + "\n\n";             
        }

        if(example[pos] instanceof B)
        {
            output += example[pos].toString() + "\n\n"; 
        }

    }

我希望它能打印出由实例组合在一起的数组中的所有内容。而不是部分为空的整个数组。

1 个答案:

答案 0 :(得分:1)

您可以创建两个output个变量,一个用于A个实例,另一个用于B个实例。然后,您可以将每个实例附加到其对应的输出变量,并在结尾处打印输出变量。以下是使用您的代码的示例:

public static void display(ExampleA[] example)
{ 
    for(int pos = 0; pos < example.length; pos++) 
    {   
        if(example[pos] instanceof A)
        {
            outputA += "Example number " + (i + 1);
            outputA += example[pos].toString() + "\n\n";             
        }

        if(example[pos] instanceof B)
        {
            outputB += "Example number " + (i + 1);
            outputB += example[pos].toString() + "\n\n"; 
        }

    }

    System.out.println("A:\n" + outputA);
    System.out.println("B:\n" + outputB);
}

您还应该考虑使用StringBuilder附加字符串,因为它比使用+=快得多