print toString() 不打印 ArrayList Class 成员对象
print toString() doesn't print ArrayList Class member objects
为什么 print toString()
不打印数组 Class 成员对象?它说 "cannot return a void result"。当我的 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
class 但是 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();
}
}
你要return一个字符串,println
是一个void
方法。
有点类似于这个Python问题——How is returning the output of a function different than printing it?
改变
return System.out.println(name + "" + number)
到return name + "" + number;
Also, can I make String.format(,) work in this case?
当然可以。 return String.format("Names: %s\nNumbers: %s", name, number);
System.out.println 是空的,因此不能 return 任何东西。
你应该做的是:
public String toString()
{
return name + " " + number;
}
并且在调用者中,使用 person 实例来打印:
System.out.println(person.toString());
或以下,因为打印对象将自动调用 toString() 方法。
System.out.println(person);
为什么 print toString()
不打印数组 Class 成员对象?它说 "cannot return a void result"。当我的 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
class 但是 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();
}
}
你要return一个字符串,println
是一个void
方法。
有点类似于这个Python问题——How is returning the output of a function different than printing it?
改变
return System.out.println(name + "" + number)
到return name + "" + number;
Also, can I make String.format(,) work in this case?
当然可以。 return String.format("Names: %s\nNumbers: %s", name, number);
System.out.println 是空的,因此不能 return 任何东西。 你应该做的是:
public String toString()
{
return name + " " + number;
}
并且在调用者中,使用 person 实例来打印:
System.out.println(person.toString());
或以下,因为打印对象将自动调用 toString() 方法。
System.out.println(person);