class AnnotationHandler implements InvocationHandler {

    @SuppressWarnings("unchecked")
    public static <T extends Annotation> T create(Class<T> annotationType, Object bean) {
        return (T) Proxy.newProxyInstance(annotationType.getClassLoader(), new Class<?>[]{annotationType},
                new AnnotationHandler(annotationType, bean));
    }

    private  AnnotationHandler(Class<? extends Annotation> annotationType, Object bean);

}