请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

我们平时写的java类岂不是都逸出了?

老师,我们平时定义普通的java类,属性都是私有的,然后是public的get/set方法,那这都算逸出吗?
如果是逸出,我感觉没什么风险啊。如本例中,我们只是把新new出来的对象里的map给remove了一个key。再new其它对象时,map依然是周一到周四啊。
这不是日常编程中很常见的使用吗,怎么成了逸出风险了。
求解答,谢谢。

正在回答

2回答

悟空 2019-12-14 19:01:19

如果是逸出,那么必须是“本不想让外界拿到,却不慎被外界拿到了”。平时的get/set,我们本身就是想让外界拿到,所以不算逸出。同理,如果我们的本意就是希望外界可以获取到new出来的对象里的map,那么就不算逸出,但是本例中,代码编写者不希望这个map被外界修改,那么这里就属于逸出,所以直接返回map对象是有风险的,你可以看下后面的小节对这个问题的修复方案。

2 回复 有任何疑惑可以回复我~
JLU_LONG 2019-12-24 22:09:54

你用到setget就要创建啊,你既然你创建了,肯定就是想让别人访问。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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