Tại sao tôi lại nhận được một lỗi stackoverflow?này trong Java - Exception in thread "main" java.lang.StackOverflowError
Lớp học của tôi -
public class Tester {
int id;
Tester(int id){
this.id = id;
}
public String toString(){
String rep = "Hex: " + this + ", Id: " + this.id;
return rep;
}
}
Phương pháp chính -
class Driver{
public static void main(String [] args){
Tester t = new Tester(123);
System.out.println(t);
}
}
Lỗi -
Exception in thread "main" java.lang.StackOverflowError
at java.lang.String.length(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at java.lang.StringBuilder.<init>(Unknown Source)
at com.examscam.model.Tester.toString(Tester.java:13)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
---------REPEAT !!!
Mục đích của ur là làm gì trong phương pháp toString –
@VineetSingla - để hiển thị giá trị của 'this'. Nhưng rõ ràng, tôi không thể làm điều đó mà không gây ra lỗi SO. –
In này sẽ chỉ in các giá trị classname @ hashcode, lớp Tester chỉ có một thuộc tính id, do đó, chỉ cần in id sẽ hoạt động. –