我有一个.JAR文件,它有很多类。一,我需要的是最终的,所以我无法扩展它。有一种方法,我基本上必须扩展和修复,否则一切都会中断。我怎样才能做到这一点?我知道Reflection和Javassist可以用于此,但我不知道如何。任何其他工具也是可以接受的,只要它有效。
答案 0 :(得分:2)
您无法使用反射来修改现有的类定义。
如果该JAR的许可证允许,我会建议一个不同的解决方案:反编译那个类;删除最终关键字;并重建类和JAR文件。
这是解决问题的唯一强大方式。
答案 1 :(得分:1)
例如,您可以使用Final类的包装器并扩展功能,例如:
public class YourClass {
private FinalClass finalClass;
public YourClass {
finalClass = new FinalClass():
}
public void yourMethod() {
finalClass.methodInFinalClass();
}
}
答案 2 :(得分:0)
由于某种原因,最终的课程被标记为最终成绩,所以理想情况下,您不应该尝试修改课程。您应该考虑转移到其他API或为您的案例编写自己的解决方案类。