看板 java 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/java/M.1405897369.A.4E4.html
dharma:推 07/21 14:12
NullLife:延遲物件的指定...(筆記) 07/22 01:27