我遇到打印特殊阵列的问题:
我使用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;
}
答案 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>
类冲突。)