回覆列表
  • 1 # 李米子666

    1.可用構造者設計模式。參考stringbuilder的設計模式。

    2.可以寫n多個建構函式。 避免手寫 可以使用Lombok

  • 2 # 碼農小胖哥

    解決方案

    使用lombok 外掛,具體的方法在專案中引用lombok類庫。然後透過註解的方式就可以了不用顯式宣告getter、setter等方法。開發利器。在編譯期lombok會在編譯時生成相關的方法。

    lombok網址:https://projectlombok.org/download.html

    Maven依賴:

    <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>compile</scope> </dependency>

    例子如下:

    使用Lombok的程式碼

    等價的原生Java程式碼

    截圖都沒接完,所以lombok的優勢就看出來了

    lombok原理

    接下來進行lombok能夠工作的原理分析,以Oracle的javac編譯工具為例。 自從Java 6起,javac就支援“JSR 269 Pluggable Annotation Processing API”規範,只要程式實現了該API,就能在javac執行的時候得到呼叫。 舉例來說,現在有一個實現了"JSR 269 API"的程式A,那麼使用javac編譯原始碼的時候具體流程如下:

    javac對原始碼進行分析,生成一棵抽象語法樹(AST)

    執行過程中呼叫實現了"JSR 269 API"的A程式

    此時A程式就可以完成它自己的邏輯,包括修改第一步驟得到的抽象語法樹(AST)

    javac使用修改後的抽象語法樹(AST)生成位元組碼檔案

    所以對使用者來說只需要使用註解就可以了,不單單可以解決getter、setter 這種程式碼,hash、equals、logger、toString 等方法也可以透過註解支援。從此告別那些重複的程式碼。

    前景

    目前很多框架都支援lombok,大名鼎鼎的springboot已經內建依賴。idea,eclipse兩大java ide也有相關的外掛。當然希望未來java也可以內建支援相關的getter、setter方法。 希望上面的介紹對你有所幫助。

  • 3 # spesunz

    對於簡單業務確實顯得有點累贅,但提倡有get、set方法也是有原因的。從設計和麵向物件的思維來看,對類的行為進行封裝,get、set裡面有可能會一些業務邏輯吧

  • 中秋節和大豐收的關聯?
  • 甘欖什麼樣製作才能好吃?