首先,我想分享一下,我是一位经验丰富的Java开发人员,这不是一个新手问题。
我们都知道测试以检查给定索引是否在List
的范围内。即:
if (index >= 0 && index < list.size())
我想知道Java 8的引入是否创建了一些可以进行此测试的新方法。类似的东西:
if (list.isWithinBounds(index))
谷歌没有给我任何结果,我在新的API中找不到任何方法。所以也许社区知道是否有这样的东西。
我对解决这个问题的第三方图书馆不感兴趣。
答案 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));
}