ToString不起作用

时间:2015-04-17 21:25:08

标签: tostring

为什么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;     
}

2 个答案:

答案 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表示,则必须迭代它。