Cómo utilizar StringBuilder

khoale:

Tengo una función y el código de revisión Líder Técnico y dije: ¿Por qué esta sentencia if? Es básicamente el mismo mensaje. Si desea personalizado, utilice un constructor de cadena con el tipo. Cómo cambiarlo, ¿Puede alguien ayudarme?

private Optional<String> validatePrimaryPath(SalesChannelType salesChannelCode, List<String> primaryPathList) {

  if (CollectionUtils.isEmpty(primaryPathList)) {
    if (salesChannelCode.equals(SalesChannelType.HEB_TO_YOU)) {
      return Optional.of("Customer Hierarchy is mandatory field for HebToYou.");
    } else {
      return Optional.of("Customer Hierarchy is mandatory field.");
    }
  }

  return Optional.empty();
}
Andreas:

Para evitar escribir la misma cadena (parcial) literales varias veces, se puede:

  • Utilizar una constante para la parte común:

    if (CollectionUtils.isEmpty(primaryPathList)) {
        final String COMMON = "Customer Hierarchy is mandatory field";
        if (salesChannelCode.equals(SalesChannelType.HEB_TO_YOU)) {
            return Optional.of(COMMON + " for HebToYou.");
        } else {
            return Optional.of(COMMON + ".");
        }
    }
    
  • La construcción de la cadena mediante StringBuilder:

    if (CollectionUtils.isEmpty(primaryPathList)) {
        StringBuilder buf = new StringBuilder("Customer Hierarchy is mandatory field");
        if (salesChannelCode.equals(SalesChannelType.HEB_TO_YOU)) {
            buf.append(" for HebToYou");
        }
        return Optional.of(buf.append('.').toString());
    }
    

En lo personal, me gustaría mantener el código en la cuestión, sobre todo si alguna vez podrían necesitar apoyo versiones no inglesas de texto, porque en otros idiomas el texto adicional podría no ir allí.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=283675&siteId=1
Recomendado
Clasificación