// sql is a StringBuffer
// params is an array of String defined previously
// paramsTmp is a String.
switch(i) {
case 1 :
sql.append(", ");
i++;
params[1] = paramsTmp;
break;
case 2:
sql.append(", ");
i++;
params[2] = paramsTmp;
break;
case 3:
sql.append(", ");
i++;
params[3] = paramsTmp;
break;
case 4 :
sql.append(", ");
i++;
params[4] = paramsTmp;
break;
case 5 :
sql.append(", ");
i++;
params[5] = paramsTmp;
break;
case 6 :
sql.append(", ");
i++;
params[6] = paramsTmp;
break;
case 7 :
sql.append(", ");
i++;
params[7] = paramsTmp;
break;
}
This is insane. The guy who develops this is seriously sick. I'd known him ;-p
He told me: "Just 3 lines? How are you sure that's working ?"
These kind of developers don't understand what they do.
Of course a simpler solution was:
sql.append(", ");
params[i] = paramsTmp;
i++;
Not 40 lines, just 3 lines and very clear ones.
Generally, we don't need a switch. It is for bad developer, one who doesn't know pattern. Use if-else statement instead but there are better solutions.
Use an array or a List when possible, like:
final String[] myValues = {"a", "b", "c"};
final String value = myValues[index];
If the switch values is a fixed enumeration, use enum pattern instead. It is really powerfull.
Look at
Java 1.5 Enums.
You can do such thing:
/**
* MyEnum declaration.
*/
enum MyEnum {
A("A"),
B("B");
private final String mValue;
MyEnum(
final String value
) {
this.mValue = value;
}
public String getValue() {
return this.mValue;
}
public static MyEnum forValue(
final String value
) {
for (final MyEnum myEnum : values()) {
if (myEnum.getValue().equals(value)) {
return myEnum;
}
return null;
}
}
}
MyEnum use:
final String aValue = getValueSomewhere(...)
MyEnum.forValue(aValue);
See? no more switch needed.