理解靜態方法呼叫與空引用
與常見的誤解相反,在空引用上呼叫(靜態)方法不會導致空指針異常。要理解這種行為,必須掌握 Java 中靜態方法的概念。
靜態方法:共享資源
與非靜態(實例)方法不同,與特定的物件實例相關聯,靜態方法綁定到它們所屬的類別。它們不需要存取對象,因為它們在類型層級操作。
存取靜態方法:透過型別表達式
呼叫靜態方法的正確方法是透過使用型別表達式,例如 Why.test()。這種方法確保直接在類別上呼叫靜態方法,而不涉及物件實例。
陷阱:使用物件引用表達式
儘管Java 允許透過以下方式存取靜態成員物件引用表達式,強烈建議不要這樣做,並且可能會導致混亂。使用此方法 (Why aNull = null; aNull.test()) 時,引用的宣告類型 (Why) 決定呼叫的靜態方法。
使用對象引用表達式的含義
結論
為了避免混淆並確保可預測性,請務必使用類型表達式呼叫靜態方法。了解靜態成員的性質及其存取機制對於編寫正確且可維護的 Java 程式碼至關重要。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3