Android コード - SharedPreferences クラスは、さまざまな設定を永続化/取得するためのさまざまなメソッドをエクスポートします。
@SuppressWarnings("unchecked")
public static <T> T retrieve(Context ctx, String key, T defaultValue) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
if (defaultValue instanceof Boolean) return (T) (Boolean) prefs
.getBoolean(key, (Boolean) defaultValue);
else if (defaultValue instanceof Float) return (T) (Float) prefs
.getFloat(key, (Float) defaultValue);
// etc - another 4 cases
}
これは機能し、問題なく呼び出すことができますboolean stored = retrieve(ctx, "BOOLEAN_KEY", true)
-しかし、私の質問は:私はすでに使用instanceof
しT
ていて、特定のクラスに要約したので、シングルキャストとダブルキャストを回避する方法はありwarning : unchecked
ますか?
編集:クラスを渡す場合は、呼び出しgetBoolean()
などgetFloat()
を行うこともできます。メソッドの内部を簡素化し、警告を取り除きますが、呼び出しretrieve(ctx, "KEY", 1 or "string" or true)
て必要なものを取得できるようにする必要があります。