日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了有沒有可能擴展標記為最終的Joda-Time類?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我真的很喜歡Joda-Time,但我遇到了一些我認為有問題的事情。我想擴展一些類,特別是DateTime、LocalDate和LocalDateTime。但它們被標記為”最終版本”。

我發現了一個非常古老的線程,它被解釋為確保類保持不變的一種方式。http://osdir.com/ml/java-joda-time-user/2006-06/msg00001.html

我還在這里找到了一個線索,因此,是否需要將Java類標記為最終類以確保不變性是有爭議的。Why would one declare an immutable class final in Java?

無論如何,我發現不能擴展這些類是一個很大的限制。除了下載和修改源文件之外,還有什么可以做的來創建這些類的擴展版本嗎?

編輯-討論:

擴展類的能力是面向對象編程中最強大和最有用的概念之一。這可以始終有用。類的作者不可能100%確定他/她的超級Duper類在擴展到涵蓋無人能預見的用例時對某些程序員不會更有用。

Joda-Time類被標記為”最終”的明顯原因是為了確保不可能有人創建一個可變的擴展類,并將其用于依賴于Joda-Time對象不可變的現有程序。因此,在某種程度上,將這些類標記為”最終”是因為缺少一種允許將類標記為”不可變”的Java語言機制,因此它們可以被擴展,但前提是擴展的類也被標記為”不可變”。

因此,鑒于Java中缺少”不可變”關鍵字,我可以理解Joda-Time的作者希望避免這種情況。

以下解決方案可行嗎?例如,我們可以有一個結構,其中LocalDate派生自LocalDateNonFinal嗎?LocalDate是一個標記為”Final”的空類。所有功能都在LocalDateNonFinal中。

因此,如果您確實想要擴展LocalDate類,并且只打算在您自己的程序中使用擴展類,那么您可以擴展LocalDateNonFinal,并將其命名為MyLocalDate。這不會將其他模塊暴露給您可能的錯誤,因為它們仍將需要LocalDate,并且不接受LocalDateNonFinal或您的MyLocalDate。

這可以與試圖教育想要擴展這些類的程序員相結合,警告他們如果意外地創建了一個可變版本并仍然將其視為不可變的版本,則可能會出現問題。并指出這些擴展類將不能與期望常規(“最終”)類的其他模塊一起使用。

PS。我會在幾天后發布我的變通解決方案,當我完全確定的時候。到目前為止,我已經對其中兩個答案投了贊成票–謝謝你的評論和建議。我目前傾向于按照德米特里·扎伊采夫(Dmitry Zaitsev)的建議采用包裝式解決方案。

推薦答案

您可以將最終類包裝到您自己的類中,提供您想要的任何操作,并提供將返回原始Joda-Time對象的”view”方法。就像這樣:

public class MyJodaExtension {

    private final DateTime dateTime;

    public MyJodaExtension(DateTime dateTime) {
        this.dateTime = dateTime;
    }

    public boolean myOperation() {
        return false;  // or whatever you need
    }

    public DateTime asDateTime() {
        return dateTime;
    }

}

使用這種方法,您甚至可以使MyJodaExtension變,并根據需要提供DateTime的不同實例(但我希望您不要這樣做,不變的類很棒)。

正如Nathan Hughes所說,您不可能將這種”繼承的”類傳遞給其他庫或任何需要原始Joda Time類的代碼。

這篇關于有沒有可能擴展標記為最終的Joda-Time類?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:Joda Time 擴展 標記
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定