我有一個.JAR文件,它有大量的類。一,我需要的是設置爲最終的,所以我不能擴展它。有一種方法,我基本上必須擴展和修復,否則一切都會中斷。我怎樣才能做到這一點?我知道Reflection和Javassist可以用於此,但我不知道如何。任何其他工具也是可以接受的,只要它有效。如何擴展最終的類?(Reflection,Javassist)
回答
您不能使用反射修改現有的類定義。
如果該JAR許可證允許你,我會建議一個不同的解決方案:反編譯那一個類;刪除最後的關鍵字;並重建類和JAR文件。
這就是唯一的健壯的方式來解決你的問題。
我不能,反編譯器將所有東西都弄亂...... –
你試過了哪一個?只是爲了記錄 - 我們不是在談論開放源代碼,你可以簡單地下載源代碼? – GhostCat
使用JD-GUI,Luyten。其實,這是一個白帽黑客:) –
由於某個原因,最終課程標記爲final,因此最好不要嘗試修改課程。您應考慮轉向其他API或爲您的案例編寫自己的解決方案類。
您可以使用一個包裝圍繞最後類例如和擴展功能,例如:
public class YourClass {
private FinalClass finalClass;
public YourClass {
finalClass = new FinalClass():
}
public void yourMethod() {
finalClass.methodInFinalClass();
}
}
- 1. 擴展最終類的泛型類型
- 2. 如何擴展擴展類的接口
- 3. 我可以在Swift中擴展最終的類嗎?
- 4. 相當於擴展Java中的最終類
- 5. 自我,協議擴展和非最終類
- 6. 如何擴展類實例?
- 7. 如何擴展SQLiteDatabase類?
- 8. 如何擴展logger.Logging類?
- 9. 如何擴展Image類?
- 10. 如何擴展位圖類
- 11. 如何擴展JComboBox類?
- 12. 如何擴展2個類?
- 13. 如何擴展PreferenceCategory類
- 14. 如何擴展這個類?
- 15. 如何擴展javascript類
- 16. 如何擴展css類
- 17. 如何擴展兩個類
- 18. 如何擴展MembershipUser類?
- 19. 如何擴展UITextView類?
- 20. PHP的插件支持N沒有類最終擴展到一個類
- 21. Java中的每個類擴展Object.Then如何擴展其他類。因爲一個類只能擴展一個類
- 22. 擴展擴展類型
- 23. 擴展擴展類Zend_Db_Table_Row_Abstract
- 24. jQuery:如何擴展擴展?
- 25. 如何讓用戶控件擴展一個擴展UserControl的類?
- 26. 如何在Android上擴展ORMLite的BaseDaoImpl類以擴展功能
- 27. 如何聲明擴展泛型的類擴展泛型
- 28. 如何在擴展類後擴展類數組/屬性類的數組屬性?
- 29. object - 最頂級的基類如何得到Method。 [擴展方法]
- 30. 擴展一個擴展類的模塊
看一看在http://stackoverflow.com/questions/13294629/how-to-extend -a-final-class-in-java –
看到它,沒有例子。我知道這是不可能正常使用Java,但我仍然需要完成 –