Groovy metaClass schlägt beim Überschreiben der im Konstruktor aufgerufenen Methode fehl.

9

Ich habe gerade versucht, diesen einfachen Code zu schreiben, um überschreibende Methoden mit metaClass zu testen.

Der Code ist hier:

%Vor%

Es hat eine Foo () -Methode, die einfach "alt" ausgibt und vom Konstruktor aufgerufen wurde.

Hier ist der Testcode:

%Vor%

Ich habe erwartet, dass die Ausgabe "neu" sein soll, da Foo() überschrieben wurde. Aber es druckte immer noch "alt". Weiß jemand, warum es scheitert? Danke

    
danielZ 15.12.2014, 17:37
quelle

1 Antwort

4

Folgendes funktioniert:

%Vor%

Und das gilt auch für Folgendes:

%Vor%

Dieser ist interessant; Der bar() Aufruf in Foo() funktioniert, während die im Konstruktor nicht:

%Vor%

Es sieht so aus, als ob Groovy die Metaklassenmethoden FIRST bei Konstruktoren nicht überprüft. Ich denke, es ist ein Fehler und ich konnte keinen Fehler finden. Was ist mit einem JIRA ?

    
Will 16.12.2014, 11:47
quelle