Java 如何转换列表<;定制类>;到ArrayList<;定制类>;反之亦然?

Java 如何转换列表<;定制类>;到ArrayList<;定制类>;反之亦然?,java,android,list,arraylist,sharedpreferences,Java,Android,List,Arraylist,Sharedpreferences,我有一个CustomClass,它是Bean/Model/Pojo,用于从Json保存自定义Obejcts。我想在SharedReference中保存我的CustomClass的ArrayList,并在特殊场景中检索它。我找到了一种将其存储在SharedReference中的方法!正确答案由SpyZip 我可以存储和检索列表,但我想存储和检索数组列表 下面是一个片段,显示了我如何在SharedReference中存储和检索值: // This method will save custo

我有一个
CustomClass
,它是
Bean/Model/Pojo
,用于从Json保存自定义Obejcts。我想在
SharedReference
中保存我的
CustomClass
ArrayList
,并在特殊场景中检索它。我找到了一种将其存储在
SharedReference
中的方法!正确答案由
SpyZip
我可以存储和检索
列表
,但我想存储和检索
数组列表

下面是一个片段,显示了我如何在
SharedReference
中存储和检索值:

    // This method will save custom class ArrayList<Bean>
    public void saveUserFavouriteStations(
            ArrayList<RadioStationBean> radioStation) {
        FavouriteStationHolder = this.getSharedPreferences("stations", 0);
        Editor editor = FavouriteStationHolder.edit();
        Gson gson = new Gson();
        String jsonCars = gson.toJson(radioStation);
        editor.putString("stations", jsonCars);
        System.out.println("Custom ArrayList Saved in App Class");
        editor.commit();
    }

    public ArrayList<RadioStationBean> getUserFavouriteStations() {
        FavouriteStationHolder = this.getSharedPreferences("stations", 0);
        if (FavouriteStationHolder != null) {
            String jsonString = FavouriteStationHolder
                    .getString("stations", "");
            Type type = new TypeToken<List<RadioStationBean>>() {
            }.getType();
            List<RadioStationBean> carsList = gson.fromJson(jsonString, type);
            return carsList;
        } else {

            return null;
        }
    } 
//此方法将保存自定义类ArrayList
公共void saveUserFavoriteStations(
ArrayList无线电台){
FavoriteStationHolder=this.getSharedReferences(“站点”,0);
Editor=favoriteStationHolder.edit();
Gson Gson=新的Gson();
字符串jsonCars=gson.toJson(radioStation);
putString(“stations”,jsonCars);
System.out.println(“保存在应用程序类中的自定义ArrayList”);
commit();
}
公共阵列列表GetUserFavoriteStations(){
FavoriteStationHolder=this.getSharedReferences(“站点”,0);
if(FavoriteStationHolder!=null){
字符串jsonString=FavoriteStationHolder
.getString(“stations”和“”);
Type Type=new-TypeToken(){
}.getType();
List carsList=gson.fromJson(jsonString,type);
返回车单;
}否则{
返回null;
}
} 

是接口的一种特定(基于阵列)实现。因为您应该很少关心底层实现,而且这似乎不是罕见的情况之一,只需将方法签名更改为在参数列表和返回值中使用
List

您只需将java对象转换为字符串,并将该字符串存储在SharedReferences中,在检索数据时将该字符串转换回java对象。使用类型ArrayList获取ArrayList中的数据

  String jsonString = FavouriteStationHolder
                .getString("stations", "");
        Type type = new TypeToken<ArrayList<RadioStationBean>>() {
        }.getType();
        ArrayList<RadioStationBean> carsList = gson.fromJson(jsonString, type);
String jsonString=FavoriteStationHolder
.getString(“stations”和“”);
Type Type=new-TypeToken(){
}.getType();
ArrayList carsList=gson.fromJson(jsonString,type);

悲哀的是,没有一个解决方案有效,一个
列表不能直接转换到
ArrayList
,因此,我试图通过解析从gson获得的json,创建一个新的CustomClass对象,并使用
for
迭代器,使用以下代码构建一个新的ArrayList,来创建我自己的解决方案

if (FavouriteStationHolder != null) {
            String jsonString = FavouriteStationHolder
                    .getString("stations", "");
            System.out.println("json String got in App class-->" + jsonString);

            Type type = new TypeToken<List<RadioStationBean>>() {
            }.getType();
            List<RadioStationBean> stations = gson.fromJson(jsonString, type);
            ArrayList<RadioStationBean> stationsList = new ArrayList<RadioStationBean>();
            for (int i = 0; i < stations.size(); i++) {
                RadioStationBean rBean = new RadioStationBean();
                rBean.setAdvertisements(stations.get(i).getAdvertisements());
                rBean.setCategories_id(stations.get(i).getCategories_id());
                rBean.setCategoy(stations.get(i).getCategoy());
                rBean.setDescription(stations.get(i).getDescription());
                rBean.setFacebook(stations.get(i).getFacebook());
                rBean.setId(stations.get(i).getId());
                rBean.setImage_url(stations.get(i).getImage_url());
                rBean.setIsDispTrack_Artist(stations.get(i)
                        .getIsDispTrack_Artist());
                rBean.setManager_detail(stations.get(i).getManager_detail());
                rBean.setPhone_show(stations.get(i).getPhone_show());
                rBean.setPhone_studio(stations.get(i).getPhone_studio());
                rBean.setPhone_toll_free(stations.get(i).getPhone_toll_free());
                rBean.setPlatform(stations.get(i).getPlatform());
                rBean.setStation_image(stations.get(i).getStation_image());
                rBean.setStation_manager(stations.get(i).getStation_manager());
                rBean.setStation_manager_id(stations.get(i)
                        .getStation_manager_id());
                rBean.setStation_name(stations.get(i).getStation_name());
                rBean.setStation_status(stations.get(i).getStation_status());
                rBean.setStream_format(stations.get(i).getStream_format());
                rBean.setStream_url(stations.get(i).getStream_url());
                rBean.setTheme_color(stations.get(i).getTheme_color());
                rBean.setTwitter(stations.get(i).getTwitter());
                rBean.setWeb_portal(stations.get(i).getWeb_portal());
                stationsList.add(rBean);
            }
            System.out.println("Custom ArrayList Retrieved in App Class"
                    + stationsList.get(0).getDescription());

            return stationsList;
}
if(FavoriteStationHolder!=null){
字符串jsonString=FavoriteStationHolder
.getString(“stations”和“”);
System.out.println(“应用程序类-->中得到的json字符串”+jsonString);
Type Type=new-TypeToken(){
}.getType();
List stations=gson.fromJson(jsonString,type);
ArrayList StationList=新建ArrayList();
对于(int i=0;i

非常感谢大家努力帮助我并开始下载投票者和复印机

ArrayList carsList=gson.fromJson(jsonString,type);这又如何呢?创建无用对象的原因可能是重复的,只需返回
return gson.fromJson(jsonString,type)
@dnozay不是重复的,如果你清楚地阅读问题@ρ∑ρρρK,如果你仔细阅读我的问题,我想返回ArrayList,而不是gson responseNullPointer,但是我能够打印jsonString,数据是正确的,唯一的问题是转换列表我的意思是在保存和检索时使用ArrayList。这有用吗?