java 使用多个 if 语句时的方法重构
java method refactoring when multiple if statements are used
当使用多个if语句时,如何重构下面的代码?有没有其他方法可以做到这一点?
StringBuffer sb = new StringBuffer();
if (rowData.size() > 24){
sb.append(rowData.get(24).trim());
}
sb.append("|");
if (rowData.size() > 25){
sb.append(rowData.get(25).trim());
}
sb.append("|");
if (rowData.size() > 26){
sb.append(rowData.get(26).trim());
}
sb.append("|");
if (rowData.size() > 27){
sb.append(rowData.get(27).trim());
}
sb.append("|");
if (rowData.size() > 28){
sb.append(rowData.get(28).trim());
}
sb.append("|");
if (rowData.size() > 29) {
sb.append(rowData.get(29).trim());
}
按照建议将索引放入循环中会给你这个
for (int i = 24; i < 30; i++) {
if (rowData.size() > i){
sb.append(rowData.get(i).trim());
sb.append(i <= 29 ? "|" : "");
}
}
在更现代的 Java 版本中也可以这样做:
IntStream.range(24, 29).forEach(i ->
{
if (rowData.size() > i){
sb.append(rowData.get(i).trim());
sb.append(i <= 29 ? "|" : "");
}
});
当使用多个if语句时,如何重构下面的代码?有没有其他方法可以做到这一点?
StringBuffer sb = new StringBuffer();
if (rowData.size() > 24){
sb.append(rowData.get(24).trim());
}
sb.append("|");
if (rowData.size() > 25){
sb.append(rowData.get(25).trim());
}
sb.append("|");
if (rowData.size() > 26){
sb.append(rowData.get(26).trim());
}
sb.append("|");
if (rowData.size() > 27){
sb.append(rowData.get(27).trim());
}
sb.append("|");
if (rowData.size() > 28){
sb.append(rowData.get(28).trim());
}
sb.append("|");
if (rowData.size() > 29) {
sb.append(rowData.get(29).trim());
}
按照建议将索引放入循环中会给你这个
for (int i = 24; i < 30; i++) {
if (rowData.size() > i){
sb.append(rowData.get(i).trim());
sb.append(i <= 29 ? "|" : "");
}
}
在更现代的 Java 版本中也可以这样做:
IntStream.range(24, 29).forEach(i ->
{
if (rowData.size() > i){
sb.append(rowData.get(i).trim());
sb.append(i <= 29 ? "|" : "");
}
});