我遇到了一些具有以下结构的Java代码:
public MyParameterizedFunction(String param1, int param2)
{
this(param1, param2, false);
}
public MyParameterizedFunction(String param1, int param2, boolean param3)
{
//use all three parameters here
}
Run Code Online (Sandbox Code Playgroud)
我知道在C++中我可以为参数指定一个默认值.例如:
void MyParameterizedFunction(String param1, int param2, bool param3=false);
Run Code Online (Sandbox Code Playgroud)
Java是否支持这种语法?有没有理由说这两步语法更可取?
所以我正在开发一个代码库,并且有一个实用程序类可以处理为用户生成excel文档.
它有一个叫做的方法 putDataInRowColumn(row, column, data)
它有很多像putObjectsIntoExcel(myBigClass blah)和的方法 putObjectsIntoSpecialExcelType(myBigClass blah)
它调用了像putObjectIntoSpecialRowType(blah.foo(), rowIndex, specialConditions)和的方法putObjectIntoTotallydifferentRowType(blah.bar(), rowIndex, specialConditions)
所有这一切的要点是该方法putDataInRowColumn(row, column, data)从一堆不同的地方被称为公制buttload.像100+.
现在,考虑到这个遗留代码,我需要修改方法以获取其他参数 - 样式信息.99%的方法现在将'null'作为第四个参数,1%将接收包含样式信息的对象.
我修改了方法签名,以接收附加参数,但我发现自己必须编写一个正则表达式来查找/替换所有方法调用.它有效,但这感觉就像走错了路.
我应该怎么做?