Hi,
folgendes Beispiel funktioniert:
wenn ich aber in der invokeMethod anstatt System.out.println() nur println("invoke called "+name ) schreibe, bekomme ich einen Stackoverflow, weil auch der Aufruf von println durch meine invokeMethod abgefangen wird. Warum ist das so bzw. was genau ist println? Wo und wie wurd pritln als Alias für System.out.println() deklariert?
folgendes Beispiel funktioniert:
Code:
import org.codehaus.groovy.runtime.InvokerHelper
class HelloWorld implements GroovyInterceptable
{
def sayHello()
{
println("sayHello");
}
Object invokeMethod(String name, Object args)
{
MetaClass meta = InvokerHelper.getMetaClass(this);
def ret = meta.invokeMethod(this, name, args);
System.out.println("invoke called "+name );
return ret;
}
}
new HelloWorld().sayHello();
wenn ich aber in der invokeMethod anstatt System.out.println() nur println("invoke called "+name ) schreibe, bekomme ich einen Stackoverflow, weil auch der Aufruf von println durch meine invokeMethod abgefangen wird. Warum ist das so bzw. was genau ist println? Wo und wie wurd pritln als Alias für System.out.println() deklariert?