我正在研究一個使用Gson的大型Android項目。方法fromJson()
在許多文件中被稱爲幾十次。每次調用此方法時,都需要提供一些特殊情況測試。如何在Java中重寫庫方法?
而不是通過和重複測試每次使用這種方法時,我想遵循DRY原則,並簡單地覆蓋fromJson()
方法莫名其妙。
我的第一個想法是創建一個Gson的子類並重寫該方法,但我仍然必須做出幾十個(也許是數百個)更改才能完成此工作。但即使我願意做這項工作,Gson也是final
,因此無法擴展。
第二個想法:它可能會改變Gson庫代碼。但我不想走這條路,因爲我擔心我可能會破壞那些完美無缺的東西。
這是我從未冒險過的Java領域。任何人有任何建議?
你可以使用[Aspectj](https://eclipse.org/aspectj/)嗎? –
從Mockito試試Spy:http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/Spy.html - 你可以重寫一個方法,在那裏添加一些邏輯,然後調用真正的方法。 – user3707125
我既沒有使用Aspectj也沒有使用Mockito。我不願意爲這個項目添加另一個庫,但我會花一個小時來研究這些可能性。 –