docs: @Override
      public final T get() {
          if (obj == null) {
              synchronized (lock) {
                  if (obj == null) {
                      obj = create();
                  }
              }
          }
          return obj;
      }