InitializationStrategy strategy() {
        if (method.getReturnType().getKind().isPrimitive()) {
          return new CheckBooleanField();
        }
        if (containsNullable(method.getAnnotationMirrors())
            || containsNullable(method.getReturnType().getAnnotationMirrors())) {
          return new CheckBooleanField();
        }
        return new NullMeansUninitialized();
      }
Builds a {@link FieldSpec} for use in property caching. Field will be {@code private
transient volatile} and have the given type and name. If the @LazyInit annotation is
available it is added as well.
value/src/main/java/com/google/auto/value/extension/memoized/processor/MemoizeExtension.java