Java 当我';我在读共享参考资料?

Java 当我';我在读共享参考资料?,java,android,arraylist,sharedpreferences,Java,Android,Arraylist,Sharedpreferences,我正在从SharedReferences向onCreate中的arraylist添加项,但在执行此操作之前是否需要初始化arraylist private ArrayList<Song> songList = null; //Initialize mSharedPreferences storageUtil = new StorageUtil(this); //Load values from mSharedPreferences songList = storageUtil.g

我正在从SharedReferences向onCreate中的arraylist添加项,但在执行此操作之前是否需要初始化arraylist

private ArrayList<Song> songList = null;

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

//Load values from mSharedPreferences
songList = storageUtil.getRecentPlayed();
private ArrayList songList=null;
//初始化mSharedPreferences
storageUtil=新的storageUtil(此);
//从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();
private ArrayList songList=null;
songList=newarraylist();
//初始化mSharedPreferences
storageUtil=新的storageUtil(此);
//从mSharedPreferences加载值
songList=storageUtil.getRecentPlayed();

第一个可以正常工作,并在日志中显示我的项目。

如果
storageUtil.getRecentPlay()
返回一个
ArrayList
(我相信它会返回),那么您可以简单地将它应用到变量,因为该方法已经初始化了
ArrayList

之前不需要初始化ArrayList


很抱歉,我的回答很简短,我正在手机上键入如果
storageUtil.getRecentPlayed()
返回一个
ArrayList
(我相信它是这样的),那么您只需将它应用到变量,因为该方法已经初始化了
ArrayList

之前不需要初始化ArrayList


很抱歉,我的回答太短了,我在手机上键入了

否。
songList
变量值完全被
songList=storageUtil.getrecentplay()替换。如果首先将值扔进垃圾收集器,则不需要初始化该值。事实上,即使最初将其设置为
null
,也没有任何作用。您的代码应该是:

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

否。
songList
变量值完全替换为
songList=storageUtil.getrecentplay()。如果首先将值扔进垃圾收集器,则不需要初始化该值。事实上,即使最初将其设置为
null
,也没有任何作用。您的代码应该是:

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

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

在您的情况下,
getRecentlyPlayed()
是一个
getter
。它返回类的属性,而不直接公开属性本身。因此,
storageUtil
将被
getRecentlyPlayed()
中的值替换,从而初始化它