> doesn't it mean that the caller will get null the first time around
> when there is no key in the map?

You're right; I misread that API twice :-/

What you have now is fine, or you can do:

    AnnotationValidator annotationValidator = clazz.newInstance();
    AnnotationValidator previousValue = fAnnotationTypeToValidatorMap.putIfAbsent(
                validateWithAnnotation, annotationValidator);
    return previousValue != null ? previousValue : annotationValidator