public <T extends Annotation> Optional<T> getFieldAnnotation(final Class<T> clazz) {
            Objects.requireNonNull(clazz);
            return Optional.ofNullable(fieldAnnotationsMap.get(clazz))
                    .map(clazz::cast);
        }
@return True if prop is non-null and either the field or getter have
the passed {@link Annotation} class.
stroom-util/src/main/java/stroom/util/config/PropertyUtil.java