Java 打印到字符串()不';t打印ArrayList类成员对象

Java 打印到字符串()不';t打印ArrayList类成员对象,java,arraylist,tostring,Java,Arraylist,Tostring,为什么打印toString()不打印数组类成员对象?它说“不能返回无效结果”。当我的ArrayList私有对象包含值时,它需要什么类型的结果 例:在人类中- public class Person { private ArrayList <String> name; private ArrayList <Integer> number; public Person(ArrayList <String> thatName, Arr

为什么
打印toString()
不打印数组类成员对象?它说“不能返回无效结果”。当我的ArrayList私有对象包含值时,它需要什么类型的结果

例:在
类中-

public class Person { 

    private ArrayList <String> name;

    private ArrayList <Integer> number;

    public Person(ArrayList <String> thatName, ArrayList <Integer> thatNumber) 
    {
        name = new ArrayList <String>(thatName);
        number = new ArrayList <Integer>(thatNumber);
    }

    public ArrayList<String> getName() 
    {
        return name;
    }

    public ArrayList<Integer> getNumber() 
    {
        return number;
    }

    public String toString() 
    {
        return System.out.println(name + "" + number); //Gives error "cannot return a void result"    
    }   

如果要返回字符串,
println
是一个
void
方法

有点类似于这个Python问题--

改变

return System.out.println(name + "" + number)
返回名称+“”+编号

另外,我可以让String.format(,)在这种情况下工作吗


当然<代码>返回字符串。格式(“名称:%s\n编号:%s”,名称,编号)

System.out.println为空,因此无法返回任何内容。 你应该做的是:

public String toString()
{
  return name + " " + number;
}
在调用者中,使用person实例打印:

System.out.println(person.toString());
,因为打印对象将自动调用toString()方法


如果你是一个人,那些投反对票的人也请留下一个理由。阅读文档。学习JavaAPI。了解非常自解释的错误消息。。。问题并没有表明研究工作在向下箭头的悬停文本上。首先,这甚至不会编译。。。因此,标题print toString()不打印ArrayList类成员对象是不正确的。@AxelH,它是如何工作的?您可能正在运行最后一个可编译的代码。。。错误不仅仅是为了警告您。谢谢,但它不起作用。我发布了我的调用方法及其类。请帮助。@Zeus,
pr.toString()
除了获取字符串值之外,不会做任何事情。您需要通过
System.out.print(字符串)
打印值。这不能在
toString()
(至少不在返回行上)方法中完成,因为这需要返回字符串。阅读完整答案!谢谢,但它不起作用。我发布了我的调用方法及其类。在您对toString()方法进行更改后,请提供帮助,因为调用类只是put System.out.println(pr.toString())@Zeus您也可以简单地
System.out.println(person)
啊,是的,这是真的
System.out.println(person.toString());
System.out.println(person);