我有个问题。因此,假设存在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种方法,因此,类越大,我的代码就越混乱。考虑到我想公开发布我的代码,因此有人必须每次希望使用包装器时都要检查包装器会更改哪些方法。
谢谢!
您可以创建一个子类,并为要修改的五个方法的每一个添加2个方法。一个使用a double
,它执行您的逻辑并super.
调用原始方法,另一个使用aint
并确保它执行与传递in时相同的操作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);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句