Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How does Groovy deals with Final Classes

 
Sagar Shroff
Ranch Hand
Posts: 209
Java Tomcat Server
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I was amazed the way groovy's Trait allows us to extend behavior of any object.

For example:

Output: Parent: Hello Groovy

HelloChild is a final class ,I want to understand the way groovy implements this feature. According to my understanding when groovy deals with 'as' clause
it creates a proxy which extends the instance class (HelloChild) & implements the Trait. But since HelloChild is a final class i am not sure of how it works.
May be through some byte code instrumentation ? Not sure. Would be great if any ranchers knows of the internals and share their knowledge.

Regards,
Shroff.
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 33694
316
Eclipse IDE Java VI Editor
  • 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I don't think Groovy is extending the class. This DZone article includes the phrase "A class can be composed out of multiple traits". Which implies that the proxy is wrapping and not subclassing. Not sure though.
 
Sagar Shroff
Ranch Hand
Posts: 209
Java Tomcat Server
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That sounds correct. Thanks Jeanne.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic