ในขณะที่ทำงานในแอพพลิเคชั่น 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 คืออะไร?