@Override
public boolean put(@NonNull Object object) {
if (object instanceof Parcelable) {
return mmkv.encode(object.getClass().getName(), (Parcelable) object);
} else {
return mmkv.encode(object.getClass().getName(), new Gson().toJson(object));
}
}
@Override
public <T> T getObject(@NonNull Class<T> key) {
if (Parcelable.class.isAssignableFrom(key)) {
return (T) mmkv.decodeParcelable(key.getName(), (Class<? extends Parcelable>) key);
} else {
String v = mmkv.decodeString(key.getName(), (String)null);
if (!TextUtils.isEmpty(v)) {
return new Gson().fromJson(v, key);
}
}
return null;
}
记录一下封装MMKV的时候,一个方法实现同时兼容Parcelable和非Parcelable对象的存取
最新推荐文章于 2024-11-04 19:47:33 发布