java – Android:无法调用没有args的私有android.net.Uri()
发布时间:2020-12-15 04:40:27 所属栏目:Java 来源:网络整理
导读:我使用Gson将自定义模型的arraylist保存到共享首选项中 存储代码: ArrayListDownloadProgressDataModel arrayList = getArrayListFromPref(downloadProgressDataModel); SharedPreferences.Editor prefsEditor = getSharedPreferences("APPLICATION_PREF",M
我使用Gson将自定义模型的arraylist保存到共享首选项中
存储代码: ArrayList<DownloadProgressDataModel> arrayList = getArrayListFromPref(downloadProgressDataModel); SharedPreferences.Editor prefsEditor = getSharedPreferences("APPLICATION_PREF",MODE_PRIVATE).edit(); Gson gson = new Gson(); String json = gson.toJson(arrayList); prefsEditor.putString("DownloadManagerList",json); prefsEditor.apply(); } 检索 ArrayList<DownloadProgressDataModel> arrayList; Gson gson = new Gson(); SharedPreferences mPrefs = getSharedPreferences("APPLICATION_PREF",MODE_PRIVATE); String json = mPrefs.getString("DownloadManagerList",""); if (json.isEmpty()) { arrayList = new ArrayList<DownloadProgressDataModel>(); } else { Type uriPath = new TypeToken<ArrayList<DownloadProgressDataModel>>() { }.getType(); arrayList = gson.fromJson(json,uriPath); <------ Error line } 但是我得到的错误行:无法实例化类android.net.Uri 模型 public class DownloadProgressDataModel { private Uri uriPath; private long referenceId; public Uri getUriPath() { return uriPath; } public void setUriPath(Uri uriPath) { this.uriPath = uriPath; } public long getReferenceId() { return referenceId; } public void setReferenceId(long referenceId) { this.referenceId = referenceId; } } 解决方法
Uri类构造函数是私有的,它是一个抽象类. Gson尝试使用Reflection API为Uri类创建一个新对象(我们不能为抽象类创建一个对象).如此简单的解决方案是将uriPath更改为String而不是Uri.
private String uriPath; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 什么是Enum有用?
- java – google appengine不支持FileOutputStream
- java – 对于希望在常规Sun / Oracle Hotspot JVM上最小化G
- JSP Request.getSession()方法:获取和请求相关的session对
- 如何在java,tomcat,eclipse中创建JSON数据的Restful Web服务
- java – OutOfMemoryError – 如何在创建hprof后终止JVM
- java – 我如何子类化ByteBuffer?
- java – 原始流vs对象流和发生的实际装箱
- Java随机生成手机短信验证码的方法
- Java框架搭建之Maven、Mybatis、Spring MVC整合搭建(图文)