※ 引述《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