创建一个Id部分(StringBufferJava)
在此代码中:创建一个Id部分(StringBufferJava),java,Java,在此代码中: StringBuffer flux = new StringBuffer(); flux.append("[Prestation]\n") .append(createElement("Num", getNum)) .append(createElement("Code",getCode())) .append("[IR]\n") .append(createElement("Coefficient",getCoefficient()))
StringBuffer flux = new StringBuffer();
flux.append("[Prestation]\n")
.append(createElement("Num", getNum))
.append(createElement("Code",getCode()))
.append("[IR]\n")
.append(createElement("Coefficient",getCoefficient()))
.append(createElement("Quantite",getQuantite())).toString();
有两个部分(预存、IR)。因此,只有在之前设置了元素(CreateElement)时,才会创建该元素。
问题是,我只想在该节包含元素时打印该节的标题。例如,设置了仅打印IR系数
我该怎么做?有人能帮我吗?简单拆分命令并添加条件:
StringBuffer flux = new StringBuffer();
flux.append("[Prestation]\n")
.append(createElement("Num", getNum))
.append(createElement("Code",getCode()));
if (getCoefficient() != null) {
flux.append("[IR]\n")
.append(createElement("Coefficient",getCoefficient()))
.append(createElement("Quantite",getQuantite()))
}
flux.toString();
我认为在创建对象状态的描述性字符串(通常在
toString
中完成)时“创建”东西是个坏主意。这可能是一个命名问题(createElement
是否只是将值格式化为字符串
?)。忽略这一点,让我们继续
首先请注意,方法链接只是一系列调用的简写:
flux.append("[Prestation]\n");
flux.append(createElement("Num", getNum()));
flux.append(createElement("Code",getCode()));
flux.append("[IR]\n");
flux.append(createElement("Coefficient",getCoefficient()));
flux.append(createElement("Quantite",getQuantite()));
从这里可以提取变量(为了简洁起见,我将在一节中这样做):
现在,您可以应用一个条件来确定该节是否存在:
Object num = getNum();
Object code = getCode();
if (num != null && code != null) {
flux.append("[Prestation]\n");
flux.append(createElement("Num", num));
flux.append(createElement("Code", code));
}
添加条件?您可以在需要时
append
StringBuffer,而不需要在一条语句中执行此操作(flux.append().append().append();
)。您可以简单地flux.append()
然后添加一个条件以添加其余的if(condition)flux.append()
Object num = getNum();
Object code = getCode();
if (num != null && code != null) {
flux.append("[Prestation]\n");
flux.append(createElement("Num", num));
flux.append(createElement("Code", code));
}