【发布时间】:2014-12-09 00:09:41
【问题描述】:
我正在尝试通过 toString() 打印一个数组,以便我可以将它调用到另一个方法。我到底做错了什么?为什么不编译,什么是更好的解决方案。
public class Applicants
{
private String applicant[];
public Applicants()
{
Application student1 = new Application()
Application student2 = new Application()
Application student3 = new Application()
Application student4 = new Application()
Application student5 = new Application()
Application student6 = new Application();
Application applicant[] = new Application[5];
applicant[0] = student1;
applicant[1] = student2;
applicant[2] = student3;
applicant[3] = student4;
applicant[4] = student5;
applicant[5] = student6;
for (int index = 0; index < applicant.length; index++)
{
System.out.println(applicant[index]);
}
}
public String toString(String[] applicant)
{
String output = new String();
String total;
for (int index = 0; index < applicant.length; index++)
{
total = System.out.println(applicant[index]);
}
return total;
}
}
【问题讨论】:
-
考虑使用 StringBuilder。 docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html
-
它无法编译,因为这几乎不是有效的代码:
total = System.out.println(applicant[index]); -
你正在用完全不同的类型隐藏你的字段变量
applicant...这很尴尬。 -
您是否要覆盖
toString()?它们需要具有相同的参数才能做到这一点。 -
当某些东西没有编译时,编译器会给你提示代码错误的行。通过不提供这些信息,您要求其他人使用比您可用的信息更少的信息来调试您的代码。你认为这公平合理吗?