我有一个数组,其中包含足球队中的人员对象。它包含诸如名字,姓氏和地址之类的信息。当我使用下面显示的代码时,文本文件包含以下值:member @ 29086037
代码如下所示:
try
{
PrintWriter pr = new PrintWriter ("memberDetails.txt");
for (int i = 0; i < collection.length; i++)
{
pr.println(collection[i]);
}
pr.close();
} catch (FileNotFoundException ex)
{
System.out.println(ex.getMessage());
System.out.println("in" + System.getProperty("user.dir"));
System.exit(1);
}
我究竟做错了什么?
当您执行pr.println(collection[i]);
未覆盖的操作时,默认情况下将以这种方式打印Object :: toString表示对象:
类Object的toString方法返回一个字符串,该字符串包括该对象是其实例的类的名称,符号字符“ @”以及该对象的哈希码的无符号十六进制表示形式。换句话说,此方法返回一个等于以下值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
要打印每个字段,请使用对象的属性,例如:
collection[i].getName();
collection[i].getAddress();
另一种选择是重写的toString()方法member
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句