Enquanto trabalhava em um aplicativo Java, recentemente precisei montar uma lista de valores delimitada por vírgulas para passar para outro serviço da web sem saber quantos elementos haveria com antecedência. O melhor que eu conseguia pensar era algo assim:
public String appendWithDelimiter( String original, String addition, String delimiter ) {
if ( original.equals( "" ) ) {
return addition;
} else {
return original + delimiter + addition;
}
}
String parameterString = "";
if ( condition ) parameterString = appendWithDelimiter( parameterString, "elementName", "," );
if ( anotherCondition ) parameterString = appendWithDelimiter( parameterString, "anotherElementName", "," );
Sei que isso não é particularmente eficiente, já que existem strings sendo criadas em todo o lugar, mas eu estava buscando mais clareza do que otimização.
Em Ruby, eu posso fazer algo assim, que parece muito mais elegante:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Mas como o Java não possui um comando join, não consegui descobrir nada equivalente.
Então, qual é a melhor maneira de fazer isso em Java?