How to use the toString method in Java?

前端 未结 13 876
说谎
说谎 2020-11-21 06:26

Can anybody explain to me the concept of the toString() method, defined in the Object class? How is it used, and what is its purpose?

相关标签:
13条回答
  • 2020-11-21 07:04

    Coding:

    public class Test {
    
        public static void main(String args[]) {
    
            ArrayList<Student> a = new ArrayList<Student>();
            a.add(new Student("Steve", 12, "Daniel"));
            a.add(new Student("Sachin", 10, "Tendulkar"));
    
            System.out.println(a);
    
            display(a);
    
        }
    
        static void display(ArrayList<Student> stu) {
    
            stu.add(new Student("Yuvi", 12, "Bhajji"));
    
            System.out.println(stu);
    
        }
    
    }
    

    Student.java:

    public class Student {
    
        public String name;
    
        public int id;
    
        public String email;
    
        Student() {
    
        }
    
        Student(String name, int id, String email) {
    
            this.name = name;
            this.id = id;
            this.email = email;
    
        }
    
         public String toString(){           //using these toString to avoid the output like this [com.steve.test.Student@6e1408, com.steve.test.Student@e53108]
              return name+" "+id+" "+email;     
             }  
    
    
        public String getName(){
    
            return name;
        }
    
        public void setName(String name){
    
            this.name=name;
        }
    
        public int getId(){
    
            return id;
        }
    
        public void setId(int id){
    
            this.id=id;
        }
    
        public String getEmail(){
    
            return email;
    
        }
    
        public void setEmail(String email){
    
            this.email=email;
        }
    }
    

    Output:

    [Steve 12 Daniel, Sachin 10 Tendulkar]

    [Steve 12 Daniel, Sachin 10 Tendulkar, Yuvi 12 Bhajji]

    If you are not used toString() in Pojo(Student.java) class,you will get an output like [com.steve.test.Student@6e1408, com.steve.test.Student@e53108].To avoid these kind of issue we are using toString() method.

    0 讨论(0)
  • 2020-11-21 07:07

    From the Object.toString docs:

    Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

    The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

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

    Example:

    String[] mystr ={"a","b","c"};
    System.out.println("mystr.toString: " + mystr.toString());
    
    output:- mystr.toString: [Ljava.lang.String;@13aaa14a
    
    0 讨论(0)
  • 2020-11-21 07:09

    Apart from what cletus answered with regards to debugging, it is used whenever you output an object, like when you use

     System.out.println(myObject);
    

    or

    System.out.println("text " + myObject);
    
    0 讨论(0)
  • 2020-11-21 07:12

    If you learn Python first and then Java. I think it plays the same role as __str__() method in Python, it is a magic method like __dict__() and __init__() but to refer to a string representing the the object.

    0 讨论(0)
  • 2020-11-21 07:14

    Correctly overridden toString method can help in logging and debugging of Java.

    0 讨论(0)
  • 2020-11-21 07:14

    the toString() converts the specified object to a string value.

    0 讨论(0)
提交回复
热议问题