如果没有传入所有参数,如何调用父方法?

时间:2015-10-20 20:24:56

标签: oop coldfusion components

我有一个ColdFusion父组件,其功能类似于:

public numeric function myFunction(var1, var2, var3, var4, var5){
    ... function code ...
} 

然后我有一个扩展这个组件的子组件,它具有以下功能:

public numeric function myFunction(var1, var2, var3){
    super.myFunction(var1, var2, var3, variables.var4, variables.var5);
} 

其中variables.var4variables.var5是孩子的属性。

问题是var1,var2和var3是可选的。如果其中任何一个未被传入,我在super.myFunction电话上收到错误:

Variable VAR2 is undefined

如何使用两个子属性中实际传递的参数调用父方法? (没有意大利面条件编码)

2 个答案:

答案 0 :(得分:4)

public numeric function myFunction(var1, var2, var3){
    return super.myFunction(var4=variables.var4, var5=variables.var5, 
                            argumentCollection=arguments);
} 

答案 1 :(得分:1)

以下代码有效:

public numeric function myFunction(var1, var2, var3){
    arguments.var4 = variables.var4;
    arguments.var5 = variables.var5;
    return super.myFunction(argumentCollection=arguments);
} 

然而,这感觉有点哈哈。这是可接受的解决方案吗?有没有更好的解决方案?