class ReflectionExt {

    public static <T, A extends Annotation> List<Method> findAnnotatedMethods(T instance, Class<A> methodAnnotation) {
        Class<?> instanceType = bypassBytecodeGeneratedWrappers(instance);

        List<Method> result = new ArrayList<>();
        for (Method m : instanceType.getMethods()) {
            for (Annotation a : m.getAnnotations()) {
                if (a.annotationType() == methodAnnotation) {
                    result.add(m);
                }
            }
        }
        return result;
    }

    private  ReflectionExt();

}