Лучший способ поймать проблемы - PullRequest
0 голосов
/ 14 июня 2010

Пользователь отправляет файл 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);
}

И метод, который отслеживает текущее поле, которое просматриваетсяat:

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

Идея заключается в том, что если пользователь не сможет передать значение, и я получу нулевое значение, перед выдачей исключения я буду знать, какое значение не было присвоено.

Итак, как говорится, конкретные вопросы:

  1. Является ли то, что я показал ниже, приемлемым решением?
  2. Можете ли вы предложить что-то более элегантное?

1 Ответ

3 голосов
/ 14 июня 2010

Первое, что приходит мне в голову, это то, что использование ArrayList для представления имени отдельного поля является излишним.

Почему бы просто не определить private String currentFieldName; и внутри try { } do currentFieldName = "Trim Space" и т. Д.

Кроме того,

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

также может быть выражено как

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

Если ваш код проходит через много столбцов, вы определенно можете сделать этоболее элегантныйВ противном случае ваше время могло бы быть лучше потрачено на другие части вашего проекта.

Ответ на вопрос, является ли ваше решение приемлемым, зависит от требований, и набор тестов был бы идеальной стороной, чтобы дать положительный ответ.или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...