※ 引述《dharma (达)》之铭言:
: 问个弱弱的问题
: Java很多时候都会出现 XX YYY = null;
: 例如下面例子
: 原因是什么啊
: thank
: public class Main {
: public static void main(String args[]) {
: JFrame frame = new JFrame("Welcome");
: String picPath = "C:\\xxx.jpg";
: Icon icon = new ImageIcon(picPath);
: JLabel lab = null;
: JLabel lab = new JLabel("", icon, JLabel.CENTER);
: 省略
: }
: };
不给定初始值无法使用~
但说一个最近我才发现的事情,
那就是如果是全域变量,并且有final修饰词的时候,
可以在建构子里头给定第一次的reference,例如:
class A {
final String kerker;
public A(String kerker) {
this.kerker = kerker;
}
}
所以如果你一开始就写 final String kerker = null;
你后续就不可能让kerker去参照其他的refence了
因为有一次我在写物件的时候,就觉得很奇怪,
为什么我final的变量一定要宣告的时候马上给值,
不能new整个物件的时候再来决定吗?
所以无意间被我try出来 XD
不过我又继续想那static的field是否能在static{}里头处理?
结果是不行,所以我想了想才觉得有点笨,
既然static又final了,那一定有初始值才能提供给其他物件使用。
以上一点心得分享。