如何在Java中修改封装库?

时间:2018-06-20 08:53:45

标签: java

我正在为我的项目使用生成器。现在的问题是我需要根据需要修改该库的某些方法。

Generator类是最终的,因此我无法创建一个扩展它的新类。另外putlast方法是私有的。

是否有解决此问题的方法,或者我需要删除此库?

我的主要方法;

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"+.
   }

}

2 个答案:

答案 0 :(得分:1)

您无法继承最终类。我想库作者将Generator类设置为不可覆盖。无论如何,您都可以使用所需的逻辑来创建自己的类。

答案 1 :(得分:0)

如果您只想覆盖库的少数功能,而保留大部分功能,则可以创建一个包装库类的类,仅修改所需的行为。因此,该类的主要目的是充当库类之前的代理,除非您要修改某些行为。