2015-03-16 2 views
1

Я хотел бы попытаться объединить эти два метода ниже в одном:Объедините эти два метода

public void add(String property, Parameter p) { 
    if (errorMap.containsKey(property)) { 
     ArrayList<Parameter> existingFiles = errorMap.get(property); 
     if (!existingFiles.contains(p)) { 
      errorMap.get(property).add(p);  
     }    
    } else { 
     ArrayList<Parameter> listOfActFiles = new ArrayList<Parameter>(); 
     listOfActFiles.add(p); 
     errorMap.put(property, listOfActFiles); 
    } 

} 

public void addSimpleErrorMessage(String message) { 
    if(message != null) { 
     errorMessage.add(message); 
    } 
} 

Первый метод contructs карту, где ключи String и значения являются ArrayList.

private HashMap<String, ArrayList<Parameter>> errorMap = new HashMap<String, ArrayList<Parameter>>(); 

Я хочу попытаться добавить вторую часть информации, которая является простым сообщением об ошибке (метод 2). HashMap не является достаточно сложным, чтобы хранить эту информацию, но мне нравится то, как она будет принимать только уникальные значения, и это значит, что нужно перебирать и переходить.

Любые предложения с благодарностью :)

+0

Может быть более одного сообщения об ошибке на карту ключа? Связаны ли эти сообщения об ошибках с объектами «Параметр»? –

+0

Нет, должна быть только одна ошибка на ключ карты. ArrayList - это в основном список файлов, в которых возникает эта конкретная ошибка. – eeijlar

ответ

2

Я рекомендую вам создать новый класс для хранения в вашей карте в качестве объекта значения. Этот класс должен содержать ваш исходный ArrayList<Parameter>, плюс включить строковое сообщение об ошибке.

Затем вы можете получить объект с карты и заполнить сообщение об ошибке (через метод сеттера).

Смежные вопросы