我有一大堆使用類XXX的Java代碼。隨着時間的流逝,班級的含義已經發生了變化,名稱不再合適。爲了使代碼更具可讀性,我想將類的名稱更改爲YYY。Java中是否有增量更改類名的方法?
一種選擇是在一次編輯所有文件並將XXX更改爲YYY,但類的實際名稱不是唯一的 - 還有其他類具有相同名稱,不同包 - 所以我需要看代碼。我希望能夠做出一些改變,測試它是正確的,改變一些,再測試一些,等等。在這個過渡期間,我希望能夠交替使用YYY和XXX。最終我會消除XXX。
我需要的是一個「別名」的概念,我可以在其中創建YYY和XXX的別名,但Java沒有這個概念。
我可以使YYY成爲XXX的一個子類,它具有所有相同的構造函數和方法。在一個變量被聲明爲XXX的情況下,這將工作正常,並且我分配了一個YYY類型的值。它也可以在一個方法參數是XXX的地方工作,並且我傳遞一個YYY。但是當參數聲明爲YYY並且我有一個XXX值發送時,它將不會起作用。
我可以將YYY注入到繼承中,以便XXX擴展YYY,但是我遇到了與上面相同的問題:在混合使用XXX聲明和YYY值的代碼中存在問題。
過渡時間將需要幾個月。在此期間,我不關心性能或效率,我只是需要它來編譯和運行足夠正確的測試。 有關允許在Java代碼體中增量更改類名的最佳實踐的建議?
UPDATE
下面的答案是,雖然沒有辦法在Java中做到這一點,也應該沒有理由要麼。我隨後安裝並重構了代碼,並在此博客文章中寫下了經驗:Don’t Suffer Poor Names
您的系統有多大? – starblue 2013-02-09 16:55:51
隨着系統的發展,代碼庫並不是「巨大的」,但是對於一個人來說,代碼庫並不是很「龐大」:100K到200K行。 – AgilePro 2013-02-09 16:58:50
可能的選擇:給它一個公共版本的字符串字段?給它一個私人的long serialVersionUID字段? – 2013-02-09 17:01:01