tempShop似乎和shop没什么关系?

tempShop似乎和shop没什么关系?

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

老师,这里我们自己创建了一个tempshop对象,然后我们把tempshop对象的图片地址删了,但是这又不会影响到shop。然而addShopImg方法里传入的是shop。我们修改了tempshop,但是又没有影响到shop。然后最后又传入shop,那不是相当于什么都没干?

正在回答

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

4回答

同学你好,删除图片文件之后,并没有删除图片地址的属性,在addShopImg方法中直接重新覆盖了原有属性,例如:

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

感兴趣同学可以自己跑一下项目,测试一下,这样理解会更深刻。

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

好帮手慕小班 2020-02-27 10:21:52

同学你好,非常抱歉可能是老师并没有讲解清楚,导致同学没有理解,当前方法是要修改shop对象的属性,对于shop中的图片属性,需要先删除原来的图片,然后再来添加新的图片。

tempShop 是没有修改前的shop对象,删除原来的shop对象的图片属性

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

删除完成后,对于传入的修改后的shop对象,再来进行重新添加。

根据上述内容可知,tempShop 是指向没有修改的shop对象,而shop是指从页面中传递过来的修改后的对象。

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

  • 提问者 岩爵 #1
    那么,为什么要先删除原来的shop对象的图片属性,再添加修改后的shop对象呢?直接添加修改后的shop对象,把前面的覆盖掉不就行了吗?这样可以一步到位。为什么要单独取出修改前的shop对象进行删除呢?
    2020-02-27 10:57:44
  • 好帮手慕小班 回复 提问者 岩爵 #2
    同学你好,1、queryByShopId为了获取之前的对象,获取到图片地址,将图片删除,如果不进行查询也不知道原来的图片地址是什么,也就没法删除。2、非常抱歉,老师之前的解释有一些问题,shop与tempShop 并不是严格意义上的指向的是同一个对象,而是tempShop是修改前的对象,shop是修改后的对象,就好比去银行取款,tempShop是取款前的账户余额,shop是取款后的账户余额。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2020-02-27 11:19:17
  • 提问者 岩爵 回复 好帮手慕小班 #3
    删除图片文件之后,数据库里对应shop(也就是原来的shop)的图片地址也会被删除吗?就是那个相对路径shop_img
    2020-02-27 11:33:26
好帮手慕小班 2020-02-26 18:51:57

同学你好,deleteFileOrPath方法是删除对应的图片文件:

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

tempShop 是没有修改前的shop对象,删除原有的shop对象的图片文件,删除成功后,再来重新添加修改后的shop对象。

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

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

  • 提问者 岩爵 #1
    那么,我把addShopImg方法里的shop参数改成tempShop也可以咯?因为反正它们指向同一个对象。
    2020-02-26 21:17:04
好帮手慕小班 2020-02-26 18:02:48

同学你好,Shop tempShop = shopDao.queryByShopId(shop.getShopId()); 通过queryByShopId方法查询到shop.getShopId()对应的对象。

    ImageUtil.deleteFileOrPath(tempShop.getShopImg());  删除shop.getShopId()对应的对象中的图片地址的内容。

    addShopImg(shop, shopImgInputStream, fileName); 图片地址删除成功后,再执行传入的shop对象的重新添加。

由上述内容可知,shop与tempShop 指向的是同一个对象。

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

  • 提问者 岩爵 #1
    那就可以简写啊,何必还要引入一个tempShop呢?
    2020-02-26 18:07:55
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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