索引1,大小1异常

时间:2016-06-15 10:27:50

标签: java indexoutofboundsexception

我查看了有关此例外的所有问题。我知道数组索引从0开始,如果大小为1,我们只能访问索引0.虽然我知道这个逻辑,但我无法修复以下代码。

  private static Map<String, Map<String, List<String>>> executions = new HashMap<String, Map<String, List<String>>>();

public static String readExecution(String jobName, String deviceName, int executionNumber) {
    String result = null;
    Map<String, List<String>> jobExecutions = executions.get(jobName);
    if (jobExecutions != null) {
      List<String> executionPerDevice = jobExecutions.get(deviceName);
      result = executionPerDevice.get(executionNumber); // ERROR
    }

    return result;
  }

编辑: Fildor的comment.execution数字的答案是1。

enter image description here 有帮助吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

快速解决方案: 执行号作为参数从外部传递,因此您应该检查此数字是否适合executionPerDevice大小:

      if (executionPerDevice.size() >= executionNumber){
            result = executionPerDevice.get(executionNumber);
        }

答案 1 :(得分:0)

这些运行时异常消息会告诉您为了解问题需要知道的所有

SIZE是ONE

INDEX是ONE。

考虑一个大小为1的列表的有效索引集。