作者JustinHere (良葛格)
看板java
标题Re: [问题] xxx = null
时间Mon Jul 21 07:02:46 2014
※ 引述《NullLife (929rock化)》之铭言:
: 但说一个最近我才发现的事情,
: 那就是如果是全域变数,并且有final修饰词的时候,
: 可以在建构子里头给定第一次的reference,例如:
: class A {
: final String kerker;
: public A(String kerker) {
: this.kerker = kerker;
: }
: }
: 所以如果你一开始就写 final String kerker = null;
: 你後续就不可能让kerker去参照其他的refence了
: 因为有一次我在写物件的时候,就觉得很奇怪,
: 为什麽我final的变数一定要宣告的时候马上给值,
: 不能new整个物件的时候再来决定吗?
如果物件资料成员被宣告为final,但没有明确使用=指定值,那表示延迟物件成员值的指
定,在建构式执行流程中,一定要有对该资料成员指定值的动作,否则编译错误。
也就是说,final String kerker; 时,kerker 并没有指定值,也不是 null。
如果你 final String kerker = null,就永远是 null 了…XD
--
良葛格学习笔记
http://openhome.cc
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 117.19.118.88
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1405897369.A.4E4.html
1F:推 dharma:推 07/21 14:12
2F:推 NullLife:延迟物件的指定...(笔记) 07/22 01:27