class GetterLazy { static class ValueType { ValueType() { super(); } } private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference fieldName = new java.util.concurrent.atomic.AtomicReference(); GetterLazy() { super(); } public @java.lang.SuppressWarnings({"all", "unchecked"}) ValueType getFieldName() { java.lang.Object value = this.fieldName.get(); if ((value == null)) { synchronized (this.fieldName) { value = this.fieldName.get(); if ((value == null)) { final ValueType actualValue = new ValueType(); value = ((actualValue == null) ? this.fieldName : actualValue); this.fieldName.set(value); } } } return (ValueType) ((value == this.fieldName) ? null : value); } }