项目中要求的场景如下:将上一次请求得到的数据 A 保存到缓存中,下一次请求得到的数据 B 与缓存的数据对比,A 与 B 相同则不进行操作,否则更新视图并且将当前缓存的数据更换成B。
为保证及时释放数据占用的空间,我在退出界面的方法中进行如下操作:调用ArrayList.clear(),并将 ArrayList = null。但在实际操作场景中发现请求的方法中这个 ArrayList 报NPE。
经过排查发现:进入界面——>请求数据,数据未回来——>退出界面,将ArrayList 置为null——>数据回来,此时调用ArrayList 的方法则会报 NPE。
解决方法:在退出界面的方法中只调用ArrayList.clear() ,不将 ArrayList 置为null即可。
网友评论