### Question:
ReflectionHelper { @Nullable public static <A extends Annotation> A findAnnotation(Method method, Class<A> annotationType) { return AnnotationUtils.findAnnotation(method, annotationType); }  static boolean hasAnnotation(Method method, Class<A> annotationType); @Nullable static A findAnnotation(Method method, Class<A> annotationType); @Nullable static A findAnnotation(Class<?> clazz, Class<A> annotationType); @Nullable static Object invokeMethod(Method method, Object target); static Set<Method> getterMethods(Class<?> clazz); static String propertyNameOfGetter(Method method); @Nullable static T propertyValueByName(Object targetObject, String propertyName, Class<T> clazz); @Nullable static Method propertyGetter(Object obj, String propertyName);  }### Answer:
@Test public void testFindAnnotationMethod() { assertEquals(3l, ReflectionHelper.findAnnotation(childABar, Min.class).value()); assertNull(ReflectionHelper.findAnnotation(childABar, Max.class)); assertEquals(4l, ReflectionHelper.findAnnotation(childAFoo, Max.class).value()); }
@Test public void testFindAnnotationClass() { assertNotNull(ReflectionHelper.findAnnotation(childA, Component.class)); assertEquals("blah", ReflectionHelper.findAnnotation(childA, Named.class).value()); assertNull(ReflectionHelper.findAnnotation(childA, Scope.class)); }