पाठ 26 / 38
toString()
toString() ओवरराइड करें ताकि डिफ़ॉल्ट ClassName@hashcode की जगह पठनीय डिबग आउटपुट व लॉगिंग मिले।
इसे क्यों ओवरराइड करें
डिफ़ॉल्ट toString() ClassName@hexHashCode छापता है — डिबगिंग के लिए बेकार। System.out.println(obj), स्ट्रिंग जोड़ना, और अधिकतर लॉगिंग फ़्रेमवर्क अपने-आप toString() बुलाते हैं, इसलिए एक अच्छा toString() हर जगह काम आता है।
एक उपयोगी ओवरराइड
इसे संक्षिप्त रखें और ऑब्जेक्ट को पहचानने वाली फ़ील्ड शामिल करें। आधुनिक record टाइप (Java 16+) toString(), equals() व hashCode() अपने-आप बनाते हैं।
@Override public String toString() {
return "Point[x=" + x + ", y=" + y + "]";
}
// Or skip all the boilerplate with a record:
record Point(int x, int y) {}
System.out.println(new Point(1, 2)); // Point[x=1, y=2]