java.util.Date會被棄用嗎?

banq發表於2022-05-11

java.time包早在2014年就在Java 8中釋出了,距今已有8年多了。
有很多理由可以避免使用Date、Calendar、DateFormat和它們的子類。也沒有什麼理由使用 java.time

使用或依賴這些遺留類的應用程式和庫的應用程式和庫已經有足夠的時間繼續前進並提供java.time.*的替代品。

沒有一個熟練的java程式設計師會在新的應用程式中使用這些遺留類。除非是在與遺留的API整合時。現在使用這些類至少應該被認為是糟糕的(bug的來源、安全問題等),至少應該被認為是一種糟糕的程式設計實踐。新手、不熟練的、粗心的和懶惰的程式設計師,他們應該知道的更多,如果仍然樂此不疲地繼續使用傳統的類,惹惱了那些更開明的人。

所以,我的建議很簡單。現在是時候將它們標記為@Deprecated(但不是為了刪除)。

預計負面影響會非常小。流行的產品如Spring和Jakarta等流行的產品要麼已經向前邁進了一步,提供了java.time.*的替代品。或者可以快速而容易地做到這一點。

在積極影響方面,不僅僅是阻止使用醜陋和惱人的Date、Calendar和DateFormat的API的使用。這些類是經常出現的錯誤的來源,這些錯誤是很難追蹤和除錯的。由於它們的易變性和執行緒的不安全性,這些類經常是錯誤的來源,很難跟蹤和除錯。
因此,我們已經到了讓編譯器發出警告的時候了。

注:也不要在全新的程式碼中使用 SimpleDateFormat



 

相關文章