简体   繁体   English

java.lang.ClassCastException: java.util.ArrayList 不能转换为 java.lang.Object[]

[英]java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Object[]

In my android project, I want to create a generic class to store all types of entities in sharedPreferences but give the error :在我的 android 项目中,我想创建一个通用类来在 sharedPreferences 中存储所有类型的实体,但给出错误:

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Object[]

here is my code :这是我的代码:

public ArrayList<E> getItems(Context context) {
        android.content.SharedPreferences settings;
        List<E> objects ;
        settings = context.getSharedPreferences(PREF_NAME,
                Context.MODE_PRIVATE);

        if (settings.contains(ITEM_NAME)) {
            String json = settings.getString(ITEM_NAME, null);
            GsonBuilder gson = new GsonBuilder();
            Type collectionType = new TypeToken<List<E>>(){}.getType();

            E[] items = gson.create().fromJson(json,
                    collectionType);  // in this line occurs error


            objects = new ArrayList<E>(Arrays.asList(items));
        } else
            return null;

        return (ArrayList<E>) objects;
    }

Try:尝试:

List<E> items = gson.create().fromJson(json, collectionType);

That exception is complaining that you had an ArrayList object (which was returned from fromJson() ), but you attempted to cast it to an array with that assignment to E[] items .该异常抱怨您有一个 ArrayList 对象(它是从fromJson()返回的),但是您试图将它转换为一个数组,并分配给E[] items

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.util.arraylist 不能转换为 java.lang.object[] - java.util.arraylist cannot be cast to java.lang.object[] java.lang.ClassCastException: java.util.Arrays$ArrayList 不能转换为 java.util.ArrayList - java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList java.lang.ClassCastException:java.util.ArrayList无法强制转换为java.lang.String - java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String 如何修复:java.lang.ClassCastException:java.util.ArrayList无法强制转换为java.lang.Integer - How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Integer java.lang.ClassCastException:无法强制转换为java.lang.Object - java.lang.ClassCastException: cannot be cast to java.lang.Object java.lang.ClassCastException:无法将java.util.ArrayList强制转换为com.inrev.crm.bean.IRSurveyQuestions - java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.inrev.crm.bean.IRSurveyQuestions 处理 java.lang.ClassCastException: java.util.ArrayList 不能强制转换为 checksAccount.BankEntry - Dealing java.lang.ClassCastException: java.util.ArrayList cannot be cast to checkingAccount.BankEntry 如何修复:java.lang.ClassCastException:java.util.ArrayList无法强制转换为double [] - How to fix: java.lang.ClassCastException: java.util.ArrayList cannot be cast to double[] java.lang.ClassCastException:com.mongodb.client.internal.AggregateIterableImpl 无法转换为 java.util.ArrayList - java.lang.ClassCastException: com.mongodb.client.internal.AggregateIterableImpl cannot be cast to java.util.ArrayList java.lang.ClassCastException:无法将java.util.ArrayList强制转换为…CrExcessMaster - java.lang.ClassCastException: java.util.ArrayList cannot be cast to …CrExcessMaster
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM