我已经从方法创建了一个对象并将该对象放入数组列表中,现在我想在数组列表中打印对象的值,当我使用System.out.println(objectname)时,我得到了存储空间对象的位置而不是值
ArrayList<Student> students = new ArrayList<Student>();
Student tomas = new Student("tomas", "jordan");
students.add(tomas);
Student get = students.get(0);
System.out.println(get);
我得到的结果是学生@ 789ddfa3我想要的结果是tomas,jordan
这是下面的学生班级
公共班学生{
public String fname;
public String lname;
//constructor
public Student(String fn,String ln){
fname = fn;
lname = ln;
}
}
答案 0 :(得分:4)
来自this:
你应该总是考虑覆盖你的toString()方法 类。
Object的toString()方法返回一个String表示形式 对象,这对调试非常有用。字符串表示 对象完全取决于对象,这就是你需要的原因 覆盖类中的toString()。
因为你没有覆盖toString()
类中的Object
方法,所以你得到了这样的输出:
getClass().getName() + '@' + Integer.toHexString(hashCode())
在Student
课程中覆盖它。
@Override
public String toString(){
return fname+" "+lname;
}
答案 1 :(得分:0)
将toString()
覆盖为
public String toString() {
return fname + lname;
}
答案 2 :(得分:0)
Override the Object's class method toString()
import java.util.ArrayList;
public class IDInput {
public static void main(String[] args) {
ArrayList<Student> students=new ArrayList<Student>();
students.add(new Student("Om","Shankar"));
System.out.println(students.get(0));
}
}
class Student {
private final String mName;
private final String lName;
public Student(String inName, String inID) {
mName = inName;
lName = inID;
}
public String Called() {
return (mName);
}
@Override
public String toString() {
return mName+" "+lName ;
}
}`enter code here`