【发布时间】:2016-10-30 09:25:17
【问题描述】:
我正在尝试为 Android 的 SharedPreferences 定义一个通用包装方法,以便以更方便的方式获取\设置预定义参数列表。
最初我定义了一个所有支持类型的枚举(在我的例子中是 String、Int 和 Bool),它们中的每一个都与其对应的类相关联:
public enum ParamType {
String(String.class),
Int(Intent.class),
Bool(Boolean.class);
private final Class paramClass;
ParamType(Class paramClass) {
this.paramClass = paramClass;
}
}
然后我定义了我使用的已知参数的枚举,以及每个参数的关联类型:
public enum Param {
FirstParam(ParamType.Bool),
SecondParam(ParamType.String),
ThirdParam(ParamType.Int);
Param(ParamType paramType) {
this.paramType = paramType;
}
private final ParamType paramType;
}
然后我想要一个泛型方法,通过给定的参数,它会知道返回适当的类型:
public static <T> T getParamValue(Param param) {
}
但是,我不确定如何实现此方法以及是否真的可行,因为上面的签名中没有传递通用 T 参数。
【问题讨论】:
标签: java android generics enums sharedpreferences