首頁 >Java >java教程 >如何建立 CaseInsensitiveString 實例:建構子或靜態工廠方法?

如何建立 CaseInsensitiveString 實例:建構子或靜態工廠方法?

Patricia Arquette
Patricia Arquette原創
2024-11-15 02:39:021119瀏覽

 How to Create CaseInsensitiveString Instances: Constructor or Static Factory Method?

Java 字串:手指指向「String s = new String("silly")」

冒險進入Java 程式設計世界,出現關於適當建立String 物件的查詢。這種擔憂源於透過使用文字而不是“new String(...)”呼叫來避免不必要的字串創建的概念。但是,該指南似乎與自訂字串類別(例如 CaseInsensitiveString)的使用相矛盾。

問題 1:為什麼需要使用「new CaseInsensitiveString(...)」?

與 String 的簡單情況相比,CaseInsensitiveString 是程式設計師定義的自訂類別。此類的實例只能透過指定的建構子「CaseInsensitiveString(...)」來建立。由於 Java 不支援複製建構函數,因此必須明確呼叫建構函數來初始化物件的內部狀態。

問題 2:調整 CaseInsensitiveString 使其表現得像 String

而CaseInsensitiveString 的預設行為需要使用其建構函數,有潛在的途徑來模仿內建 String的簡化語法class.

帶擴展:

  • 擴展 String 將允許 CaseInsensitiveString 繼承其行為。
  • 重寫 String 的靜態工廠方法將啟用從文字直接實例化。
  • 但是,這種方法將 CaseInsensitiveString 與String 類,限制其靈活性並引入潛在的維護問題。

沒有擴充:

  • 實作自訂「valueOf(...)」靜態方法將允許從文字建立 CaseInsensitiveString 實例。
  • 這保留了 CaseInsensitiveString 與String 類,同時提供更方便的初始化語法。
  • 在「valueOf(...)」方法中,將使用傳遞的文字建立 CaseInsensitiveString 的新實例。

以上是如何建立 CaseInsensitiveString 實例:建構子或靜態工廠方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn