请稍等 ...
×

采纳答案成功!

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

dog置为null不报空指针的理解

Dog dog = new Dog();//1

create function //2
我理解创建function对象时是下面的过程,
Dog insideDog = dog;
functionMethod(insideDog,Integer){
process Integer parameter with insideDog;
}

dog = null; //3,dog置为null并不影响上面的insideDog的值

call functionMethod//4

这种顺序4不受3的影响。但如果把3提前到2,此时肯定会报空指针的。
所以为什么不报空指针的关键应该是function对象的创建时做了什么,而不是传值还是传址。

正在回答 回答被采纳积分+3

插入代码

2回答

提问者 zjg23 2019-06-05 17:48:38

https://stackoverflow.com/questions/33052917/why-can-method-reference-use-non-final-variables

1 回复 有任何疑惑可以回复我~
晓风轻 2019-06-07 13:26:02

因为是传值,所以dog = null,不会影响其他地方指向dog实例的变量。

当然和顺序是有关系的了。

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

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

帮助反馈 APP下载

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

公众号

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