从列表中获取连续对

时间:2015-01-20 18:49:39

标签: java collections refactoring guava apache-commons

我重构了一些代码,其中一段看起来像这样 -

    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 util方法,是否存在。我不介意自己写一个,但我宁愿不重新发明轮子并使用Apache CommonsGuava中存在的东西。

在红宝石世界中,我使用slice之类的东西。

1 个答案:

答案 0 :(得分: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]);
    }
}