Dlaczego otrzymuję błąd stackoverflow?To w Javie - Wyjątek w wątku "główny" java.lang.StackOverflowError
Moja klasa -
public class Tester {
int id;
Tester(int id){
this.id = id;
}
public String toString(){
String rep = "Hex: " + this + ", Id: " + this.id;
return rep;
}
}
Główną metodą -
class Driver{
public static void main(String [] args){
Tester t = new Tester(123);
System.out.println(t);
}
}
Błąd -
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 !!!
Co ma zamiar zrobić w metodzie toString –
@VineetSingla - aby wyświetlić wartość 'this'. Ale oczywiście nie mogę tego zrobić bez spowodowania błędu SO. –
Drukowanie tego spowoduje tylko wydrukowanie wartości classname @ hashcode, klasa Tester ma tylko jeden identyfikator atrybutu, więc wystarczy wydrukować identyfikator powinien działać. –