이 Java 코드로 인해 StackOverflowError
이 생성되는 이유는 무엇입니까? 이 어떻게 든 재귀 제네릭 형식 매개 변수와 연결되어 이해합니다. 그러나 나는 전체 메커니즘을 분명히 이해하지 못합니다. 여기왜 여기에 StackOverflowError가 생깁니 까?
public class SomeClass<T extends SomeClass> {
SomeClass() {
new SomeClassKiller();
}
private class SomeClassKiller extends SomeClass<T> {
}
public static void main(String[] args) {
new SomeClass();
}
}
오류 스택 추적을 살펴 보았습니까? 그것은 당신에게 무슨 일이 일어나고 있는지에 대한 단서를 제공해야합니다. 그것은 타입 매개 변수와 관련이 없습니다 - 만약 당신이 그것들을 제거한다면, 그것은 여전히'StackOverflowError'를 제공합니다. – Jesper
좋은 질문에 stackoverflow. (: –
@Jesper : SomeClassKiller 무한 횟수로 초기화되고 있습니다.하지만 이유를 이해하지 못합니다. – Roman