我有一个getFormattedValue(List<String> dataHeaders, List<String> data)
返回基于字符串值的 dataHeaders 和数据列表内容的方法。dataHeaders 列表可以有 10 个不同的值,并且基于特定索引处的值输出字符串形成变化。
下面的代码在按特定顺序接收 dataHeaders 内容之前运行良好,但最近这个顺序经常发生变化。由于此输入是从其他应用程序/系统接收的,因此我无法控制元素的顺序。因此,我想更新我的代码,以便即使在更改输入顺序后它也能正常工作。
如果 dataHeaders 列表的第一个元素是“OPERATION_NAME”,那么我不需要采取任何行动,但如果“OPERATION_NAME”出现在 dataHeaders 列表中的第二个索引处,那么我需要对输出值进行特殊格式化。等等....
我的痛苦是我收到了 10 个 dataHeaders。请向我建议任何处理此问题的好方法。我在下面发布我的代码,欢迎提出建议。
import java.util.ArrayList;
import java.util.List;
public class ValueGenerator {
public String getFormattedValue(List<String> dataHeaders, List<String> data){
String formattedOutValue=null;
if(dataHeaders!=null && data!=null &&
dataHeaders.size() == data.size()){
if(dataHeaders.get(0).equals("OPERATION_NAME")){
formattedOutValue=data.get(0); // Add no spaces
}else if(dataHeaders.get(1).equals("OPERATION_NAME")){
formattedOutValue=data.get(1)+" "; // Add 4 blank spaces
}else if(dataHeaders.get(2).equals("OPERATION_NAME")){
formattedOutValue=data.get(2)+" "; // Add 6 blank spaces
}
}
//likewise i want to avoid redundant if - else if check
return formattedOutValue;
}
}