如何在Java中修改封装的库?
我正在为我的项目使用生成器。问题是现在我需要根据我的需要修改这个库的一些方法 Generator类是final类,所以我无法创建扩展它的新类。最后一个方法也是私有的 是否有办法解决此问题,或者我需要删除此库 我的主要方法如何在Java中修改封装的库?,java,Java,我正在为我的项目使用生成器。问题是现在我需要根据我的需要修改这个库的一些方法 Generator类是final类,所以我无法创建扩展它的新类。最后一个方法也是私有的 是否有办法解决此问题,或者我需要删除此库 我的主要方法 generator.setFlowProperty(myProperty); 图书馆课程 public final class Generator{ public Builder setFlowProperty(Property property) {
generator.setFlowProperty(myProperty);
图书馆课程
public final class Generator{
public Builder setFlowProperty(Property property) {
putLast("flowProperty", property.toCustomString());
....
}
private Builder putLast(String name, String value) {
....
}
}
public final class Property{
public String toCustomString(){
return "a" + prop; // I want to modify this and return "b"+ instead of "a"+.
}
}
您无法继承最后一个类。我想库作者创建生成器类不是为了重写。无论如何,您可以使用所需的逻辑创建自己的类。如果您只想覆盖库中的少数函数,并保留大部分函数,则可以创建一个封装库类的类,只修改所需的行为。因此,该类的主要目的是在library类之前充当代理,除非您想修改某些行为。这些
final
的目的是不允许这种做法,那么您认为您可以如何做到这一点呢?如果库是开源的,您可以提交一个补丁。@Markus是的,它是开源的。我试试看。