请问老师我按要求为什么会报错呢?

请问老师我按要求为什么会报错呢?

public class FoodDaoImpl {
	private static final List<Map<String, String>> db;
	public void addFood(Map<String, String> food) {
		
	}
}

http://img1.sycdn.imooc.com//climg/5b44488f0001f1b906790328.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

报错的原因是db没有初始化,给它初始化一下就可以了,例如:

 private static final List<Map<String, Object>> db = new ArrayList<Map<String, Object>>();

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 慕虎8754231 提问者 #1
    我看这个成员变量里面有“final”,那不是说就不能对db进行设置与更新?
    2018-07-10 14:57:38
  • 好帮手慕阿莹 回复 提问者 慕虎8754231 #2
    map和list 对应的是栈中存储的地址,final表示地址不能修改,但是地址对应的内存区域的值是可以修改的;而往map里put或者list里add是不会改变它的地址值的,是可以的。 如果你先写private static final List<Map<String, Object>> db = new ArrayList<Map<String, Object>>();, 再写 db = new ArrayList<Map<String, Object>>(); 同样会报错 例如像字符串类型的,如果字符串改变了,它的引用地址也改变了,所以是不可以的。
    2018-07-10 15:47:14
  • 慕虎8754231 提问者 回复 好帮手慕阿莹 #3
    额,关键是我不明白这个有什么用?在类“FoodDaoImpl”中含有“private static final List<Map<String, String>> db”,而在“ UploadUtils”中有“ Map<String, String> params ”,那么为什么要求需要有“private static final List<Map<String, String>> db”呢?因为这个有“final”其实是不能设定的
    2018-07-10 16:06:23
提问者 慕虎8754231 2018-07-10 15:10:20

http://img1.sycdn.imooc.com//climg/5b445bbb0001f6ec07100298.jpg

这个要求是不是有问题呢?缺少括号还是?

  • 这里是少了一个括号,同学添加上少的)即可,同时已转达相关工作人员修改,感谢你的反馈。
    2018-07-10 16:03:56
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师