Bir Java uygulamasında çalışırken, kaç tane öğenin önceden olacağını bilmeden başka bir web hizmetine geçmek için virgülle ayrılmış bir değerler listesi oluşturmam gerekiyordu. Başımın üstünden gelebileceğim en iyi şey şuydu:
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", "," );
Her yerde oluşturulan dizeler olduğundan, bu özellikle verimli olmadığını, ancak optimizasyon daha netlik için gidiyordu farkındayım.
Ruby'de bunun yerine böyle daha zarif bir şey yapabilirim:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Ancak Java'nın birleştirme komutu olmadığından, eşdeğer bir şey bulamadım.
Peki, bunu Java ile yapmanın en iyi yolu nedir?