java - 找到问题点的更好方法

标签 java

用户提交一个由程序使用的 CSV 文件。整个程序中使用的值来自 CSV,如果值丢失,自然会出现问题。以下是我的解决方案。

IP 位于顶部

private List<String> currentFieldName = new ArrayList<String>();

作为方法的一部分:

try {
  setCurrentFieldName("Trim Space");
  p.setTrimSpace(currentLineArray[dc.getTRIM_POSITION()].equals("yes") ? true : false);

  setCurrentFieldName("Ignore Case");
  p.setIgnoreCase(currentLineArray[dc.getIGNORE_CASE_POSITION()].equals("yes") ? true : false);

} catch (NullPointerException e) {
    throw new InputSpreadsheetValueUnassignedException("\"Type\" field not set: " + currentFieldName);
}

以及跟踪当前正在查看的字段的方法:

private void setCurrentFieldName(String fieldName) {
 currentFieldName.clear();
 currentFieldName.add(fieldName);
}

这个想法是,如果用户未能提交值并且我最终会得到 null,那么在抛出异常之前,我会知道未分配什么值。

所以,话虽这么说,具体问题是:

  1. 我在下面显示的解决方案是可接受的解决方案吗?
  2. 你能建议一些更优雅的东西吗?

最佳答案

我首先想到的是使用 ArrayList 来表示单个字段的名称是多余的。

为什么不直接定义一个 private String currentFieldName; 并在 try { } 中执行 currentFieldName = "Trim Space" 等? p>

另外,

p.setTrimSpace(currentLineArray[index].equals("yes") ? true : false);

也可以表示为

p.setTrimSpace(currentLineArray[index].equals("yes"));

如果你的代码涉及很多列,你绝对可以让它变得更加优雅。如果没有,您的时间最好花在项目的其他部分。

您的解决方案是否可接受的答案取决于需求,而测试套件将是提供"is"或“否”的理想选择。

关于java - 找到问题点的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3034637/

相关文章:

java - 运行 Java 字节码

java - XPath选择器Selenium WebDriver,无法使用ID

java - 如何将 "shrink"Java 8 流从多个条目减少到更少

java - 如何用Java swing做这个布局?

java - 处理Java对象

java - 无法打印年薪。我究竟做错了什么?

java - 从哪里获得 openCV 的 jar?

java - 根据字段值用 GSON 解析 JSON(与 retrofit 一起使用)

java - 写入 Firebase 时出错。应用程序不断崩溃

java - 从 .class 或类似的东西实例化 Fragment 对象?