[
https://issues.apache.org/jira/browse/GROOVY-11432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17863235#comment-17863235
]
ASF GitHub Bot commented on GROOVY-11432:
-----------------------------------------
paulk-asert commented on PR #2097:
URL: https://github.com/apache/groovy/pull/2097#issuecomment-2210872828
I'll write an email to the dev list shortly and await feedback before
merging. As currently designed, it works for dynamic Groovy and fails when
using static compilation. This is kind of as I'd expect since we have a
"dangling" method reference not associated with a functional interface. But we
could also make some assumptions and use a `Consumer` and make it work for
statically compiled code.
> Explore whether we should add method references to annotations
> --------------------------------------------------------------
>
> Key: GROOVY-11432
> URL: https://issues.apache.org/jira/browse/GROOVY-11432
> Project: Groovy
> Issue Type: Improvement
> Reporter: Paul King
> Priority: Major
>
> The topic (for Java) appeared on social media recently:
> https://twitter.com/GeoffreyDeSmet/status/1808216150867861896
> Java thought it might be a good idea a while back but thought it would be
> hard to implement:
> https://mail.openjdk.org/pipermail/core-libs-dev/2018-November/056596.html
> For us we could use a Class typed annotation attribute and do like we
> currently do for closures, e.g.:
> {code}
> @interface UIColorAnnotation {
> Class method()
> }
> @UIColorAnnotation(method = Person::getAgeColor)
> public int getAge() {
> }
> ...
> {code}
> Since we already support closures, my thinking is to make the above exactly
> equivalent to:
> {code}
> @UIColorAnnotation(method = { with(Person::getAgeColor) })
> public int getAge() {
> }
> ...
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)