我有一个.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,但我仍然需要完成 –