gpt4 book ai didi

java - 检查通用函数android java中的对象类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:29 25 4
gpt4 key购买 nike

我的 android 应用程序中有一个函数:

public static <T> void saveLocalData(Context context, String key, Class<T> value) {
// Check type of value here
SharedPreferences prefs = context.getSharedPreferences(
Constants.PREFERENCES_KEY, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
if(value.isAssignableFrom(String.class)){
//Put value here
}
else if(value.isAssignableFrom(Boolean.class)){
//Put value here
}

editor.commit();
}

我想检查此函数中的值类型(我想检查两种类型 BooleanString),但我不知道该怎么做!任何人都可以提出任何建议吗?谢谢!

已编辑: 感谢大家的帮助!我还有一个问题是如何将它的值保存到 Preferences

最佳答案

你可以使用 Class.isAssignableFrom() .

Determines if the class or interface represented by this Class object is either the same as, or is a superclass or superinterface of, the class or interface represented by the specified Class parameter


更新:通过问题中的编辑,并为了在 SharedPreferences.Editor 中设置键/值, 使用 putString()putBoolean() .

考虑到您需要将值作为参数接收。请注意,如果您收到该值,您已经可以访问它的类(因此您不需要 Class<T> 作为参数,也不需要 isAssignableFrom() ),并通过 instanceof 检查它运算符(operator):

public static <T> void saveLocalData(Context context, String key, T value) {
SharedPreferences prefs = context.getSharedPreferences(
Constants.PREFERENCES_KEY, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
if (value instanceof String) {
editor.putString(key, (String) value);
}
else if (value instanceof Boolean){
editor.putBoolean(key, (Boolean) value);
}
editor.commit();
}

关于java - 检查通用函数android java中的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com