我正在使用某个库(包含使用jar文件)开发一个java应用程序,我想重写该库中包含的类(抽象类)上存在的方法,甚至更改其中的某个参数值。 有办法做到这一点吗?
最佳答案
扩展您想要重写方法的类。
public class ClassFromExtLib {
public void foo(Object param) {
}
}
public class MyClass extends ClassFromExtLib {
@Override
public void foo(Object param) {
super.foo(param);
//adding my own implementation...
}
}
如果您无法扩展该类,请使用可以执行该方法的包装类,然后向其中添加您自己的逻辑。
public final class ClassFromExtLib {
public void foo(Object param) {
}
}
public class MyClass {
//code to initialize the instance of the class ommited
private ClassFromExtLib bar;
public void foo(Object param) {
bar.foo(param);
//adding my own implementation...
}
public void foo(Object param, Object param2) {
bar.foo(param);
//adding my own implementation using param and param2...
}
}
如果你想从方法中添加/删除参数,那么你不能通过重写来做到这一点,这就是重载。第二种方法最适合您。
关于java - 如何重写库类的方法或分配参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17252036/