我有以下代码。
Dataset function1 (){
StringBuilder sb = new StringBuilder();
sb.append('abcd');
sb.append('efgh');
for(int i=0 ; i< 8; i++){
sb.append('ijkl');
sb.append('monop');
sb.append('ijkl');
sb.append('monop');
}
Dataset ds = function2(sb);
if(ds.isempty(){
StringBuilder sb = new StringBuilder();
sb.append('abcd');
sb.append('efgh');
for(int i=0 ; i< 8; i++){
sb.append('ijkl');
sb.append('monop');
sb.append('ijkl');
sb.append('464sdfsdfsdfggfdkjkjkjkj');
sb.append('monop');
}
ds = function2(sb);
})
return ds;
}
我不想在ds.empty()括号中重写相同的代码。 有没有更好的方法来解决这个问题?
答案 0 :(得分:3)
只需将代码放在自己的方法中:
public StringBuilder GetString(boolean p_appendExtraStrings)
{
StringBuilder sb = new StringBuilder();
sb.append('abcd');
sb.append('efgh');
for(int i = 0 ; i < 8; i++)
{
sb.append('ijkl');
sb.append('monop');
sb.append('ijkl');
if(p_appendExtraStrings)
{
sb.append('464sdfsdfsdfggfdkjkjkjkj');
sb.append('monop');
}
}
return sb;
}
然后您可以通过调用此方法替换当前的StringBuilder代码
Dataset function1()
{
Dataset ds = function2(GetString(false));
if(ds.isEmpty()
{
ds = function2(GetString(true));
}
return ds;
}