code: @CheckResult @NonNull public <T> Preference<T> getObject(@NonNull String key,
        @NonNull T defaultValue, @NonNull Preference.Converter<T> converter) {
      checkNotNull(key, "key == null");
      checkNotNull(defaultValue, "defaultValue == null");
      checkNotNull(converter, "converter == null");
      return new RealPreference<>(preferences, key, defaultValue,
          new ConverterAdapter<>(converter), keyChanges);
    }
docs: Create a preference for type {@code T} for {@code key} with a default of {@code defaultValue}.