[ 
https://issues.apache.org/jira/browse/GROOVY-9223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Sun updated GROOVY-9223:
-------------------------------
    Description: 
{{invokeMethod}}, {{getProperty}} and {{setProperty}} are common for groovy 
classes, but they have to be generated for each groovy class as 
{{GroovyObject}} is an interface and can not have default implementation before 
Java8.

Groovy 3 is based on Java8, so we can leverage the power of default method in 
interface to avoid generating common methods. As a result, the size of groovy 
class files will be reduced(about 580 bytes reduced), and the time costed on 
generating and loading class files will be reduced too.

  was:
{{invokeMethod}}, {{getProperty}} and {{setProperty}} are common for groovy 
classes, but they have to be generated for each groovy class as 
{{GroovyObject}} is an interface and can not have default implementation before 
Java8.

Groovy 3 is based on Java8, so we can leverage the power of default method in 
interface to avoid generating common methods. As a result, the size of groovy 
class files will be reduced, and the time costed on generating and loading 
class files will be reduced too.


> Avoid generating common methods for each groovy class
> -----------------------------------------------------
>
>                 Key: GROOVY-9223
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9223
>             Project: Groovy
>          Issue Type: Improvement
>            Reporter: Daniel Sun
>            Assignee: Daniel Sun
>            Priority: Major
>             Fix For: 3.0.0-beta-4
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> {{invokeMethod}}, {{getProperty}} and {{setProperty}} are common for groovy 
> classes, but they have to be generated for each groovy class as 
> {{GroovyObject}} is an interface and can not have default implementation 
> before Java8.
> Groovy 3 is based on Java8, so we can leverage the power of default method in 
> interface to avoid generating common methods. As a result, the size of groovy 
> class files will be reduced(about 580 bytes reduced), and the time costed on 
> generating and loading class files will be reduced too.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to