On 10/30/2013 12:52 AM, Peter Levart wrote:
On 10/30/2013 02:57 AM, Joe Darcy wrote:
On 10/29/2013 06:37 PM, Joe Darcy wrote:
Hi Joel,
On 10/29/2013 09:20 AM, Joel Borggrén-Franck wrote:
Hi Joe, Peter,
On 29 okt 2013, at 07:09, Joe Darcy <joe.da...@oracle.com> wrote:
[snip]
I retract my previous comments; I was confusing "annotationType" and
"value()" in terms of where they are defined. This version of
getDeclaredAnnotationsByType passes the battery of regression tests:
default <T extends Annotation> T[]
getDeclaredAnnotationsByType(Class<T> annotationClass) {
Objects.requireNonNull(annotationClass);
return AnnotationSupport.
getDirectlyAndIndirectlyPresent(Arrays.stream(getDeclaredAnnotations()).
collect(Collectors.toMap(
(a -> a.annotationType()),
Function.identity(),
((first,second) -> first),
() -> new LinkedHashMap<>() )),
annotationClass);
}
Hi Joe,
I suggest using method references where possible, which saves from
generating two (of three) synthetic methods in AnnotatedElement interface:
Collectors.toMap(
Annotation::annotationType,
Function.identity(),
(first, second) -> first,
LinkedHashMap::new)
Hi Peter,
Good suggestion; I've made the recommended change:
http://cr.openjdk.java.net/~darcy/8005294.7/
Thanks for the reviews,
-Joe