Saat bekerja di aplikasi Java, saya baru-baru ini perlu menyusun daftar nilai yang dipisahkan koma untuk dilewatkan ke layanan web lain tanpa mengetahui berapa banyak elemen yang akan ada di muka. Yang terbaik yang bisa saya dapatkan dari atas kepala saya adalah sesuatu seperti ini:
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", "," );
Saya menyadari ini tidak terlalu efisien, karena ada string yang dibuat di semua tempat, tapi saya akan mencari kejelasan lebih dari optimasi.
Di Ruby, saya bisa melakukan sesuatu seperti ini, yang terasa jauh lebih elegan:
parameterArray = [];
parameterArray << "elementName" if condition;
parameterArray << "anotherElementName" if anotherCondition;
parameterString = parameterArray.join(",");
Tetapi karena Java tidak memiliki perintah join, saya tidak dapat menemukan yang setara.
Jadi, apa cara terbaik untuk melakukan ini di Jawa?