为什么print toString()
不打印Array Class成员对象?它说“不能返回无效结果”。当我的ArrayList私有对象包含值时,它需要什么类型的结果。
例如:在Person
class-
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"
}
另外,在这种情况下,我可以让String.format(,)
工作吗?我试过,但它不起作用,因为ArrayList对象类型不是原始数据类型。
编辑:
以下是我如何调用Person
类,但toString()
不打印任何内容。
import java.util.ArrayList;
public class PersonTest {
public static void main(String[] args) {
ArrayList <String> nam = new ArrayList <String>();
ArrayList <Integer> numb = new ArrayList <Integer>();
nam.add("Zeus");
numb.add(99);
Person pr = new Person(nam, numb);
pr.toString();
}
}
答案 0 :(得分:2)
您想要返回一个字符串,println
是void
方法。
这个Python问题的某些方面 - How is returning the output of a function different than printing it?
更改
return System.out.println(name + "" + number)
到return name + "" + number;
另外,在这种情况下,我可以使String.format(,)工作吗?
不确定。 return String.format("Names: %s\nNumbers: %s", name, number);
答案 1 :(得分:2)
System.out.println是一个空格,因此无法返回任何内容。 你应该做的是:
public String toString()
{
return name + " " + number;
}
并在调用者中,使用person实例进行打印:
System.out.println(person.toString());
或以下,因为打印对象会自动调用toString()方法。
System.out.println(person);