将JsonString转换为自定义java ArrayList

将JsonString转换为自定义java ArrayList,java,android,json,arraylist,Java,Android,Json,Arraylist,我的问题是,如何将保存的Json Sting转换回自定义ArrayList 以下是我保存ArrayList的方式: public void saveLocList(ArrayList<LocItem> locList) { SharedPreferences.Editor e = returnPref.edit(); Gson gson = new Gson(); String json = gson.toJson(locList); e.putStr

我的问题是,如何将保存的Json Sting转换回自定义ArrayList

以下是我保存ArrayList的方式:

public void saveLocList(ArrayList<LocItem> locList) {
    SharedPreferences.Editor e = returnPref.edit();
    Gson gson = new Gson();
    String json = gson.toJson(locList);
    e.putString(LOCLIST, json);
    e.commit();
}
我不知道要更改什么,可能savingformat有问题(但它可以工作)


谢谢

错误消息告诉您这是铸造问题

TypeToken.getType()
返回类
ParameterizedTypeImpl
的对象,该类实现了
java.lang.reflect.Type

但是,由于我假设您对
android.renderscript.Type
有一个import语句,Java正在尝试将
ParameterizedTypeImpl
转换为
android.renderscript.Type


只需修复导入语句或使用完全限定名(
java.lang.reflect.Type
),就像您在代码后面所做的那样。

错误消息告诉您这是强制转换的问题

TypeToken.getType()
返回类
ParameterizedTypeImpl
的对象,该类实现了
java.lang.reflect.Type

但是,由于我假设您对
android.renderscript.Type
有一个import语句,Java正在尝试将
ParameterizedTypeImpl
转换为
android.renderscript.Type


只需修复导入语句或使用完全限定名(
java.lang.reflect.Type
),就像您在代码后面所做的那样。

错误消息告诉您这是强制转换的问题

TypeToken.getType()
返回类
ParameterizedTypeImpl
的对象,该类实现了
java.lang.reflect.Type

但是,由于我假设您对
android.renderscript.Type
有一个import语句,Java正在尝试将
ParameterizedTypeImpl
转换为
android.renderscript.Type


只需修复导入语句或使用完全限定名(
java.lang.reflect.Type
),就像您在代码后面所做的那样。

错误消息告诉您这是强制转换的问题

TypeToken.getType()
返回类
ParameterizedTypeImpl
的对象,该类实现了
java.lang.reflect.Type

但是,由于我假设您对
android.renderscript.Type
有一个import语句,Java正在尝试将
ParameterizedTypeImpl
转换为
android.renderscript.Type


只需修复import语句或使用完全限定名(
java.lang.reflect.Type
),就像您在代码后面所做的那样。

如果您不告诉我们哪里出了问题,我们该如何知道。如果您不告诉我们什么出了问题,我们该如何知道。如果您不告诉我们什么出了问题,我们怎么知道呢。如果你不告诉我们出了什么问题,我们怎么知道呢。谢谢你,很抱歉这个愚蠢的问题,我没有仔细阅读日志。谢谢你,很抱歉这个愚蠢的问题,我没有仔细阅读日志。谢谢你,很抱歉这个愚蠢的问题,我没有仔细阅读日志。谢谢你,很抱歉这个愚蠢的问题,我没有仔细阅读日志。
public ArrayList<LocItem> getLocList() {
    String json = returnPref.getString(LOCLIST, "");
    Type type = (Type) new TypeToken<ArrayList<LocItem>>() {
    }.getType();
    ArrayList<LocItem> inpList = new Gson().fromJson(json, (java.lang.reflect.Type) type);
    return inpList;
}
12-30 22:19:19.395: E/AndroidRuntime(2254): FATAL EXCEPTION: main
12-30 22:19:19.395: E/AndroidRuntime(2254): java.lang.RuntimeException: Unable to start activity ComponentInfo{mypackagename.MainActivity}: java.lang.ClassCastException: com.google.gson.internal.$Gson$Types$ParameterizedTypeImpl cannot be cast to android.renderscript.Type
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.app.ActivityThread.access$600(ActivityThread.java:153)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.os.Looper.loop(Looper.java:137)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.app.ActivityThread.main(ActivityThread.java:5289)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at java.lang.reflect.Method.invokeNative(Native Method)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at java.lang.reflect.Method.invoke(Method.java:525)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at dalvik.system.NativeStart.main(Native Method)
12-30 22:19:19.395: E/AndroidRuntime(2254): Caused by: java.lang.ClassCastException: com.google.gson.internal.$Gson$Types$ParameterizedTypeImpl cannot be cast to android.renderscript.Type
12-30 22:19:19.395: E/AndroidRuntime(2254):     at mypackagename.helper.Preferences.getLocList(Preferences.java:152)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at mypackagename.MainActivity.onCreate(MainActivity.java:137)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.app.Activity.performCreate(Activity.java:5133)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
12-30 22:19:19.395: E/AndroidRuntime(2254):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293)
12-30 22:19:19.395: E/AndroidRuntime(2254):     ... 11 more