Працюючи в додатку Java, мені нещодавно потрібно було скласти список значень, розділених комами, щоб передати іншій веб-службі, не знаючи, скільки елементів буде заздалегідь. Найкраще, що я міг придумати з голови, було щось подібне:
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", "," );
Я усвідомлюю, що це не особливо ефективно, оскільки в усьому світі створюються рядки, але я зрозумів більше, ніж оптимізацію.
У Ruby я можу зробити щось подібне замість цього, що відчуває себе набагато елегантніше:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Але оскільки Java не вистачає команди приєднання, я не міг зрозуміти нічого еквівалентного.
Отже, який найкращий спосіб зробити це на Java?