2015-01-20 2 views
0

Я рефакторинг кода и часть его выглядит так -Получение последовательных пар из списка

public void addElementPairsToConfig(final Config config, final Element element1, final Element element2, final Element...elements) throws Exception { 
     config.addDependency(element1, element2); 
     Element currentElement = element2; 
     for (int i = 0; i < elements.length; i++) { 
     config.addDependency(currentElement, elements[i]); 
     currentElement = elements[i]; 
     } 
    } 

Вот как я думаю, что он должен на самом деле выглядит -

public void addElementPairsToConfig(final Config config, final Element...elements) throws Exception {   
     for (Pair<Element, Element> pair : elements.getNextPair()) { 
     config.addDependency(pair.getFirst(), pair.getLast()); 
     } 
    } 

Я знаю, что Apache Commons имеет класс Pair, я буду использовать его, но не смог найти метод использования List, который делает это, есть ли тот, который существует. Я не против писать сам, но я бы не стал изобретать велосипед и использовать что-то от Apache Commons или Guava, если он существует.

В мире рубинов я бы использовал что-то вроде slice.

ответ

1

Ваше изменение для подписи метода отличное. Тем не менее, ваша идея реализации метода чрезмерно разработана. Я рекомендую держать его простым:

public void addElementPairsToConfig(final Config config, final Element...elements) throws Exception {   
    for (int i = 1; i < elements.length; i++) { 
     config.addDependency(elements[i-1], elements[i]); 
    } 
} 
+0

Отлично, это намного шире! Мне не нравится повторять «я», но я думаю, что в этом случае это лучший подход. – nikhil

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