both methods have same erasure: 如何無損擴展代碼

 遇到了一個問題,需要在原來的代碼中動態擴展,原來的代碼中是用List泛型的參數類型, 本來想通過泛型類型對 方法進行重載,如下:

  

  發現泛型會在編譯器進行類型擦除,怎麼辦呢? 

  機智如我,發現可以通過子類對父類的向上兼容完美解決如下:

  

  這樣就可以在進行安全擴展了。

   有人會說如果在設計之初就考慮到擴展的情況,就可以以一種更加優雅,低耦合的方式擴展了。  

   不爲啥,現實中沒有那麼多的如果。 ^-^ ^-^

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章