首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用谷歌芭乐的Preconditions.checkElementIndex?

如何使用谷歌芭乐的Preconditions.checkElementIndex?
EN

Stack Overflow用户
提问于 2011-08-02 09:38:19
回答 3查看 3.5K关注 0票数 5

api doc说:确保index指定一个大小为大小的数组、列表或字符串中的有效元素。

但是在什么地方传递这个方法中的“target”数组或列表字符串呢?

EN

回答 3

Stack Overflow用户

发布于 2011-08-02 11:50:50

可以使用从0开始的索引访问ArrayListString中的元素。

假设您想要使用调用list.get(index)的索引.Before访问列表中的特定元素,您可以使用以下命令检查此index是否在0和list.size()之间,以避免IndexOutOfBoundsException

代码语言:javascript
复制
 if (index < 0) {
        throw new IllegalArgumentException("index must be positive");
 } else if (index >= list.size()){
        throw new IllegalArgumentException("index must be less than size of the list");
 }

Preconditions类的目的是用更紧凑的检查替换这种检查

代码语言:javascript
复制
Preconditions.checkElementIndex(index,list.size());

因此,您不需要传递整个目标列表实例.Instead,只需将目标列表的大小传递给此方法。

票数 6
EN

Stack Overflow用户

发布于 2011-08-02 11:12:42

方法Precondition.checkElementIndex(...)不关心“目标”。您只需传递sizeindex,如下所示:

代码语言:javascript
复制
public String getElement(List<String> list, int index) {
  Preconditions.checkElementIndex(index, list.size(), "The given index is not valid");
  return list.get(index);
}

根据Guava's reference的说法,checkElementIndex方法可以实现如下:

代码语言:javascript
复制
public class Preconditions {
  public static int checkElementIndex(int index, int size) {
    if (size < 0) throw new IllegalArgumentException();
    if (index < 0 || index >= size) throw new IndexOutOfBoundsException();
    return index;
  }
}

正如您所看到的,它不需要知道列表、数组或其他任何东西。

票数 3
EN

Stack Overflow用户

发布于 2011-08-02 10:55:31

您不需要"target“来知道int索引对于给定大小的list、string或array是否有效。如果为index >= 0 && index < [list.size()|string.length()|array.length],则它是有效的,否则无效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6906423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档