当没有传入所有参数时,如何调用 parent 方法?
How can I call parent method when not all parameters are passed in?
我有一个 ColdFusion parent 组件,其功能如下所示:
public numeric function myFunction(var1, var2, var3, var4, var5){
... function code ...
}
然后我有一个 child 组件扩展了这个组件并具有以下功能:
public numeric function myFunction(var1, var2, var3){
super.myFunction(var1, var2, var3, variables.var4, variables.var5);
}
其中 variables.var4
和 variables.var5
是 child 的属性。
问题是 var1、var2 和 var3 是可选的。如果其中任何一个未传入,我在 super.myFunction
调用中收到错误消息:
Variable VAR2 is undefined
如何使用实际传入的参数和 2 个 child 属性调用 parent 方法? (没有意大利面条件编码)
以下代码有效:
public numeric function myFunction(var1, var2, var3){
arguments.var4 = variables.var4;
arguments.var5 = variables.var5;
return super.myFunction(argumentCollection=arguments);
}
但是,这感觉有点老套。这是一个可以接受的解决方案吗?有没有更好的解决方案?
public numeric function myFunction(var1, var2, var3){
return super.myFunction(var4=variables.var4, var5=variables.var5,
argumentCollection=arguments);
}
我有一个 ColdFusion parent 组件,其功能如下所示:
public numeric function myFunction(var1, var2, var3, var4, var5){
... function code ...
}
然后我有一个 child 组件扩展了这个组件并具有以下功能:
public numeric function myFunction(var1, var2, var3){
super.myFunction(var1, var2, var3, variables.var4, variables.var5);
}
其中 variables.var4
和 variables.var5
是 child 的属性。
问题是 var1、var2 和 var3 是可选的。如果其中任何一个未传入,我在 super.myFunction
调用中收到错误消息:
Variable VAR2 is undefined
如何使用实际传入的参数和 2 个 child 属性调用 parent 方法? (没有意大利面条件编码)
以下代码有效:
public numeric function myFunction(var1, var2, var3){
arguments.var4 = variables.var4;
arguments.var5 = variables.var5;
return super.myFunction(argumentCollection=arguments);
}
但是,这感觉有点老套。这是一个可以接受的解决方案吗?有没有更好的解决方案?
public numeric function myFunction(var1, var2, var3){
return super.myFunction(var4=variables.var4, var5=variables.var5,
argumentCollection=arguments);
}