Android Integer cannot be cast to java.lang.Long

先保存一个long数据:SherfUtils.setLongData(Constant.SHERF_KEY_BOOK_START_TIME, System.currentTimeMillis())
再取出时SherfUtils.getLongData(Constant.SHERF_KEY_BOOK_START_TIME)
报错:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
at android.app.SharedPreferencesImpl.getLong(SharedPreferencesImpl.java:249)
at com.tulingweier.yw.minihorsetravelapp.utils.SherfUtils.getUsingCarStartTime(Unknown Source)
at com.tulingweier.yw.minihorsetravelapp.fragment.UseCarFragment.onResume(Unknown Source)
注:
SherfUtils是一个封装类:
public static void setLongData(String key, long vaule) {
MyApp.getSherf().edit().putLong(key, vaule).commit();
}

 public static long getLongData(String key) {
      return MyApp.getSherf().getLong(key, 10);
 }

2个回答

在getlongData方法里,你给的默认值是10,这个是int类型,后面最后加小数位

u011288271
new_obj 可是,我自己运行了一下,就让他返回默认的10,程序没有报错,而在用户手机上就报错
2 年多之前 回复

在吗,我遇到和你一样的问题,请问最后怎么解决的,麻烦能给我说下吗? 我的qq:2673206184

u011288271
new_obj return MyApp.getSherf().getLong(key, 10); 10后面加个字母l ,我这边就好了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问