AspectJ-Compiler-Fehler führt zu StackOverflowError

9

Ich stoße heute auf einen StackOverflow-Fehler des AspectJ-Compilers und dachte, ich sollte ihn auf StackOverflow teilen :-) Um den Fehler zu reproduzieren, habe ich ein Spielzeugbeispiel gemacht

%Vor%

Der Versuch, diesen Code zu kompilieren, führt zu folgendem Fehler:

%Vor%

Wenn ich jedoch die Generics in der Node-Klasse zu

ändere %Vor%

(beachten Sie ? anstelle von Q ), das Programm funktioniert und gibt aus, was Sie erwarten würden:

%Vor%

obwohl Eclipse sich darüber beschwert

  

Die Methode setParent (StringContentNode) ist für den Typ StringContentNode

nicht definiert

wenn ich die WithParent-Schnittstelle leer lasse, wie es jetzt ist, oder das

  

Der Typ StringContentNode muss die geerbte abstrakte Methode implementieren   WithParent.getParent ()

Wenn ich Getter und Setter in der Schnittstelle definiere.
Soll ich den Fehler signalisieren? Gibt es eine sauberere Möglichkeit, die gleiche Funktionalität zu erreichen, ohne dass es zu einem komischen Kompilierungsproblem kommt? Danke!

    
Emanuele Fusco 31.10.2017, 07:47
quelle

1 Antwort

2

Es scheint, dass niemand einen Workaround vorschlagen wird, der es ermöglicht, rekursive generische Interfaces über AspectJ trotz des Fehlers weiter zu implementieren. Es wäre interessant gewesen, solch eine Lösung zu finden, aber ich denke, es wird wahrscheinlich nicht existieren.

Bitte geben Sie Ihre Stimmen über den Fehlerbericht Ссылка ab, wenn Sie können.

Prost.

    
Emanuele Fusco 26.11.2017 08:43
quelle