class Prefser {

  public <T> T get(@NonNull String key, @NonNull Class<T> classOfT, T defaultValue) {
    Preconditions.checkNotNull(key, KEY_IS_NULL);
    Preconditions.checkNotNull(classOfT, CLASS_OF_T_IS_NULL);

    if (!contains(key) && defaultValue == null) {
      return null;
    }

    return get(key, TypeToken.fromClass(classOfT), defaultValue);
  }

  public  Prefser(@NonNull Context context);
  public  Prefser(@NonNull Context context, @NonNull JsonConverter jsonConverter);
  public  Prefser(@NonNull SharedPreferences sharedPreferences);
  @SuppressLint("CommitPrefEdits") public  Prefser(@NonNull SharedPreferences sharedPreferences,
      @NonNull JsonConverter jsonConverter);

}