groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jochen Theodorou <>
Subject Re: About extracting common methods to reduce the size of class files
Date Mon, 22 Jan 2018 17:14:45 GMT
And now with Jochen's feedback ;)

$getStaticMetaClass can I think not be put in an interface. It needs 
static information about the exact class this method is in and there is 
supposed to be one for each Groovy class we create... if memory serves 
me right.

Moving the others to GroovyObject would then be a replacement for 
GroovyObjectSupport. You can easily see why interfaces with default 
methods does not make that construct a trait. GroovyObjectSupport has a 
non-final, non-static, non-public field for the metaclass. Which means 
that field cannot be in there. If that field is not in there, then and 
get/setMetaClass also not.

get/setProperty as well as invokeMethod are less critical, since they 
can use getMetaClass()

But then, what is my idea for Groovy3 here? For me the minimum is to 
remove get/setProperty as well as invokeMethod and especially remove 
their meaning as Java entry point. I also intend to remove the meta 
class in the class itself and have it 100% managed outside. But that 

Historically we had these as convenience for Java. But Java people use 
mostly the compiled code anyway and for the others I think it would be 
very OK to use something like InvokerHelper instead.

bye Jochen

View raw message