java–Android:无法调用没有args的私有android.net.Uri()

java–Android:无法调用没有args的私有android.net.Uri(),第1张

概述我使用Gson将自定义模型的arraylist保存到共享首选项中存储代码:ArrayList<DownloadProgressDataModel>arrayList=getArrayListFromPref(downloadProgressDataModel);SharedPreferences.EditorprefsEditor=getSharedPreferences("APPLICATION_PREF",MODE_PRIVATE

我使用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 – Android:无法调用没有args的私有android.net.Uri()全部内容,希望文章能够帮你解决java – Android:无法调用没有args的私有android.net.Uri()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1113738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存