当我从sharedpreferences中读取时,是否需要初始化ArrayList?

时间:2019-07-02 03:07:29

标签: java android arraylist sharedpreferences

我正在从sharedPrefences的onCreate中将项目添加到我的arraylist中,但是在执行此操作之前我需要初始化我的arraylist吗?

private ArrayList<Song> songList = null;

//Initialize mSharedPreferences
storageUtil = new StorageUtil(this);

//Load values from mSharedPreferences
songList = storageUtil.getRecentPlayed();

或者这样做

private ArrayList<Song> songList = null;

songList = new ArrayList<>();

//Initialize mSharedPreferences
storageUtil = new StorageUtil(this);

//Load values from mSharedPreferences
songList = storageUtil.getRecentPlayed();

第一个工作正常,并在日志中显示我的物品。

3 个答案:

答案 0 :(得分:2)

如果storageUtil.getRecentPlayed()返回一个ArrayList<Song>(我相信确实如此),那么您可以简单地将其应用于变量,因为该方法已经初始化了ArrayList

您无需先初始化ArrayList。

对不起,我的回答很短,我正在用手机打字

答案 1 :(得分:0)

不。 songList变量值完全由songList = storageUtil.getRecentPlayed();代替。如果您首先将值扔进垃圾收集器,则不需要初始化。实际上,即使最初将其设置为null也无济于事。您的代码应为:

storageUtil = new StorageUtil(this);
private ArrayList<Song> songList = storageUtil.getRecentPlayed();

答案 2 :(得分:0)

在您的情况下,getRecentlyPlayed()getter。它返回一个类的属性,而不直接暴露该属性本身。因此storageUtil将被getRecentlyPlayed()中的值替换,从而对其进行初始化。