假設我有一個應用程序需要實時跟蹤某些事物的狀態。跟蹤通過我從外部進程獲得的事件發生。我正在開發它,我需要快速修復處理與類結構無關的事件的類成員函數。重新編譯並重新啓動java而不會丟失狀態
爲此我需要重新編譯並重新啓動,在此期間我的應用程序狀態將會丟失。我可以將狀態保存在一個文件中,但是:但是:
事件對時間至關重要,而且我不能失去一毫秒,因爲不處理事件是不可接受的。我想知道是否有任何方法來解決這個問題。
編輯:
我使用類來跟蹤數據,但它們的壽命週期是從來沒有超過一分鐘,他們永遠都不會真正之後存儲在任何地方,他們都將被刪除。數據存儲在類實例成員中,我不能失去任何一個成員的蹤跡。
請注意,我也在多個線程中使用這些類。
您可以[在運行期間重新加載班級](https://www.toptal.com/java/java-wizardry-101-a-guide-to-java-class-reloading) – kajacx
此問題太寬泛。您可能希望查看動態類重新加載(按照下面的答案)或者允許您一次運行多個版本的應用程序的不同部署模型。 – Whymarrh
您真的確實確定要在運行時生成代碼嗎?爲什麼你不能實施一些戰略模式來處理事件?代碼被注入了嗎? –