Closed. This question is opinion-based。它当前不接受答案。












想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

7年前关闭。



Improve this question




我有一些以非常隐秘的方式编写的代码。除了我之外,其他任何人都肯定会成为维护的噩梦。

它是字符串串联,三元运算符和使用+运算符串联的混搭。

所以我的问题是如何使该语句可读?
tb.setTally_narration(
     tb.getTally_mode().equals("Ca") ?
        "Receipt No. "
             .concat(tb.getTally_receipt_no())
             .concat(", "+tb.getTally_mode()) :
        "Receipt No. "
             .concat(tb.getTally_receipt_no()+", "+tb.getTally_mode())
             .concat(", "+tb.getTally_instrument_no()+", "+tb.getTally_instrument_date()+", "+tb.getTally_instrument_bank())
);

编辑:我意识到这个问题是主观的。而且我觉得它属于codereview stackexchange网站。可以搬到那里吗?

最佳答案

由于字符串的第一行看起来是相同的,因此我将其简单写为:

StringBuilder narration = new StringBuilder("Receipt No. ");

narration.append(tb.getTally_receipt_no())
         .append(", ").append(tb.getTally_mode());
if (!"Ca".equals(tb.getTally_mode()))
{
    narration.append(", ").append(tb.getTally_instrument_no())
             .append(", ").append(tb.getTally_instrument_date())
             .append(", ").append(tb.getTally_instrument_bank());
}

tb.setTally_narration(narration.toString());

09-05 09:51