在列表范围内测试索引

时间:2015-03-10 10:23:07

标签: java-8

首先,我想分享一下,我是一位经验丰富的Java开发人员,这不是一个新手问题。

我们都知道测试以检查给定索引是否在List的范围内。即:

if (index >= 0 && index < list.size())

我想知道Java 8的引入是否创建了一些可以进行此测试的新方法。类似的东西:

if (list.isWithinBounds(index))
谷歌没有给我任何结果,我在新的API中找不到任何方法。所以也许社区知道是否有这样的东西。

我对解决这个问题的第三方图书馆不感兴趣。

1 个答案:

答案 0 :(得分:0)

不完全是答案 - 只是java 8中辅助方法放置的额外选项。但是,无法轻松附加辅助接口,因此不是一个可行的解决方案。

public interface MyList<E> extends List<E> {
    default boolean isWithinBounds(int index) {
        return 0 <= index && index < this.size();
    }
}

static class MyArrayList<E> extends ArrayList<E> implements MyList<E> {
}

public void testList() {
    MyList<String> l = new MyArrayList<>();
    l.add("1");
    l.add("2");
    l.add("3");
    assert(l.isWithinBounds(2));
    assert(!l.isWithinBounds(3));
}