### Question:
ReflectionUtils { public static <T> Optional<T> getDefaultValue(Class<? extends Annotation> annotation, String property) { try { Object defaultValue = annotation.getDeclaredMethod(property).getDefaultValue(); return Optional.ofNullable(defaultValue) .map(CastUtils::as); } catch (NoSuchMethodException e) { return Optional.empty(); } }  static MakeAccessible<A> accessible(A accessibleObject); @SuppressWarnings("unchecked") static Optional<T> get(Field field, Object obj); static Optional<T> getAnnotationIfPresent(
		AnnotatedElement annotatedElement, Class<T> annotationClass); static Optional<T> getDefaultValue(Class<? extends Annotation> annotation,
		String property); static boolean isBooleanField(Field field);  }### Answer:
@Test public void testGetDefaultValue() { assertThat(ReflectionUtils.getDefaultValue(HelperAnnotation.class, "property")) .hasValue("foo"); }
@Test public void testGetDefaultValueMissing() { assertThat(ReflectionUtils.getDefaultValue(HelperAnnotation.class, "missing")).isEmpty(); }
@Test public void testGetDefaultValueNoDefault() { assertThat(ReflectionUtils.getDefaultValue(HelperAnnotation.class, "noDefault")).isEmpty(); }