@SuppressWarnings({"rawtypes","unchecked"}) public static <T extends Annotation>T unproxy(T annotation){
  Function unproxyFunction=getUnproxyFunction(annotation.annotationType());
  return (T)unproxyFunction.apply(annotation);
}

@ SuppressWarnings ( { "rawtypes" , "unchecked" } ) public static < T extends Annotation > T unproxy ( T annotation ) { Function unproxyFunction = getUnproxyFunction ( annotation . annotationType ( ) ) ; return ( T ) unproxyFunction . apply ( annotation ) ; }
convert java proxy annotation to specialized implementation , used to speedup equals / hashcode / tostring methods .
