afkT / DevUtils

:fire: ( 持续更新,目前含 300+ 工具类 ) DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。该项目尽可能的便于开发人员,快捷、高效开发安全可靠的项目。
Apache License 2.0
1.34k stars 302 forks source link

SPUtils不好用 #6

Closed kayroc closed 4 years ago

kayroc commented 4 years ago

SPUtils总是报java.lang.ClassCastException,搞得都不知道到底存的啥,取得啥了!希望能改改~

afkT commented 4 years ago

你好,这个是 get 转换类型异常,需要检查下 put 的类型和 get 类型是否一致,或者你在明确知道类型,例如 String 可以直接使用 getString(String key)


/**
 * detail: 存储 / 取出 数据类型
 * @author Ttt
 */
enum DataType {
    INTEGER, LONG, BOOLEAN, FLOAT, STRING, STRING_SET
}

/**
 * 根据 key 获取数据
 * @param key  保存的 key
 * @param type 数据类型
 * @param <T>  泛型
 * @return 存储的数据
 */
<T> T get(String key, DataType type);

/**
 * 保存数据
 * @param key   保存的 key
 * @param value 保存的 value
 * @param <T>   泛型
 */
<T> void put(String key, T value);