Java:更改方法参数的最有效方法

时间:2016-06-14 06:35:20

标签: java class

我有问题。因此,假设JRE中有这个类本身有100多种方法:

class HundredMethods {

  public void method1(int) {
  }

  public void method2(int) {
  }

  ... (98 more methods)

}

我希望改变其中5种方法的参数。 具体来说,整数加倍。 添加一个额外的双参数
我当前的解决方案涉及一个包装类:
-A:提供直接访问原班
-B:有五种方法可以将双参数(带有一些额外的输入)“转换”为原始的整数参数。所以:

class WrapperMethods{
   public HundredMethods original = (assigned at constructor)

   public void method1(double,double(extra)) {
     int i = (assigned a value in "code" below)
     this.original.method1(i);
   }
}

除了上面的方法之外,还有另一个轻量级的解决方案来改变和添加“重”类中的几个方法吗?在我的代码中实际实现这个解决方案方面,我已经发现当用户不知道包装器类改变了什么方法时,它会变得混乱。事实上,我有一个大约250多个方法类,我正在改变25个方法,所以类越大,我的代码变得越来越混乱。考虑到我想将我的代码公开发布,有人必须在每次想要使用包装器时查找包装器改变的方法。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以创建一个子类,并为要修改的五种方法中的每一种添加两种方法。一个需要double,执行您的逻辑并对原始方法执行super.调用,并且采用int并且确保它与您时相同传递double

所有其他95种方法仍可通过您的子类正常访问。

class WrapperMethods extends HundredMethods {
    public void method1(double d) {
        int i = (assigned a value in "code" below)
        super.method1(i);
    }

    public void method1(int i) {
        // Make sure that any calls that happen to pass in an integer,
        // also go by your logic.
        this.method1((double)i);
    }
}