我正在使用这样的方法
private static <T> void setPreference(String key, T value)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(Controller.getContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putString(key, value.toString());
editor.commit();
}
不幸的是,putString
是多个 put 方法之一。我还想使用 putBoolean
和 putInt
。我的问题是我想支持特定的类型(我不想像现在这样把所有东西都保存为字符串),我想尽可能地减少代码重复。我习惯了 C#,在 C# 中这种事情很容易,所以我觉得我错过了一些明显的东西。
最佳答案
做几个重载:一个接受 <T extends Boolean>
等,针对您要划分的每种特定类型。
关于Java 泛型 - 检查 T 的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5744957/