为什么toString在我的代码中不起作用?输出应该是idChild []中的所有元素。
错误:
子[Ljava.lang.String; @ 15db9742
public String[] onePointCrossover(int father, int mother) {
String linha1 = individualID.get(father);
idFather = linha1.split(" ");
String linha2 = individualDep.get(father);
depenFather= linha2.split(" ");
String linha3 = individualHour.get(father);
hourFather = linha3.split(" ");
String linhaA = individualID.get(mother);
idMother = linha1.split(" ");
String linhaB = individualDep.get(mother);
depenMother= linha2.split(" ");
String linhaC = individualHour.get(mother);
hourMother = linha3.split(" ");
String [] idChild = new String [idFather.length];
int crossPoint = (int) (Math.random()*idFather.length);
for(int i=0; i<idFather.length; i++)
{
if (i<crossPoint)
idChild[i] = idFather[i];
else
idChild [i] = idMother[i];
}
System.out.println("child" + idChild.toString());
return idChild;
}
答案 0 :(得分:0)
如果你想循环遍历数组中的所有子节点,那么你需要遍历它,否则你试图以字符串形式读取对象数组!
尝试:
foreach (string s in idChild)
{
System.out.println(s);
}
答案 1 :(得分:0)
这是toString()
的工作方式(文档here):Object
类(以及所有数组)的默认实现显示了类名@
符号和对象哈希码的十六进制表示:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
文档说:
返回对象的字符串表示形式。通常,toString方法返回一个&#34;文本表示&#34;的字符串。这个对象。
因此,程序员应该选择&#34;文本代表&#34;装置
如果要打印数组中所有项目的String
表示,则必须迭代它。