这是我得到的输出[Ljava.lang.Object; @ 20422e25

时间:2013-07-10 06:32:12

标签: java

我希望在我的Eclipse中显示alfresco内容模型中的内容。以下是我在Dictionary服务中的方法:

@Override
public Collection<QName> getSubTypes(QName arg0, boolean arg1)
{   
    //qName = (ArrayList<QName>) model.put("Array is", arg0);
    qName.add(arg0);
    return qName;
}

这就是我在测试类中调用方法的方法:

        SampleTest sampleTest = new SampleTest();
//      WebScriptRequest webScriptRequest =null;     
//      webScriptRequest.getExtensionPath();;
//      String string = webScriptRequest.getExtensionPath();
        System.out.println("" + sampleTest.getSubTypes(ContentModel.TYPE_CONTENT, true).toArray().toString());

3 个答案:

答案 0 :(得分:1)

array.toString打印数组的地址,而不是其中的元素。

您可以使用java.util.Arrays.toString方法打印字符串

所以你的代码应该像

System.out.println(Arrays.toString(sampleTest.getSubTypes(ContentModel.TYPE_CONTENT, true).toArray()));

答案 1 :(得分:0)

您要打印Collection吗?您可以将其转换为数组,并使用Arrays.toString(arr)Arrays.deepToString(arr)

Arrays.toString(
    sampleTest.getSubTypes(ContentModel.TYPE_CONTENT, true).toArray());

你在尝试的是:

.toArray().toString()

因此它将Collection转换为数组并调用该数组对象上的toString(),因此默认调用Object#toString()

  

类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@”和对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回一个等于值的字符串:

     

getClass()。getName()+'@'+ Integer.toHexString(hashCode())

答案 2 :(得分:0)

也许方法Arrays.toString()正是您所寻找的。 Object上的.toString()仅为您提供Object represantation而不是String的实际值(如果它没有被覆盖)。