使用也具有toString方法的对象对toString进行数组

时间:2016-12-21 19:06:01

标签: java arrays output

我遇到打印特殊阵列的问题:

我使用System.out.println(Arrays.toString());打印了一个包含多个对象的数组,但现在数组中充满了对象,这些对象具有char值,我想打印分配给该对象的每个char。 我怎么能在代码中做到这一点?

为了澄清,让数组成为特定的东西:

Class[] objList = {new Class(1, 'X'), new Class(4, 'Y')};

我要调用objList[0].toString()然后调用objList[1].toString()方法,得到如下输出:

[X, Y]

我希望这个问题足够清楚,如果有人能帮助我,我会很高兴,谢谢!

注意:带有toString()方法的上述类只是在类中实现,并写为System.out.print(destination); 我在这里尝试了解释:Use toString on array of objects,但显然它没有用。

public String toString() {
  System.out.print(Arrays.toString(objList.toString()));
  return null;
}

1 个答案:

答案 0 :(得分:2)

toString()方法不应该自己打印任何东西;相反,它应该返回一个字符串,它是对象的表示。如果您的班级字符是通过getChar()方法获得的,则可以按如下方式实施其toString()方法:

public String toString() {
    return String.valueOf(getChar());
}

这会将字符转换为String并将其返回。

如果你这样做,代码

Class[] objList = new Class[] { new Class(1,'X'), new Class(2,'Y') };
System.out.println(Arrays.toString(objList));

应输出[X, Y]

(我建议将您的班级Class重命名为其他内容,因为它与Java的Class<T>类冲突。)