Java 如何解决数组索引OutOfBoundsException
我有下面的代码。当我执行它时,我得到以下错误。我在另一个步骤中运行相同的代码,它工作正常,但在当前步骤中失败Java 如何解决数组索引OutOfBoundsException,java,arrays,indexoutofboundsexception,Java,Arrays,Indexoutofboundsexception,我有下面的代码。当我执行它时,我得到以下错误。我在另一个步骤中运行相同的代码,它工作正常,但在当前步骤中失败 java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ def dbData = queryResults; def mailTable = "<
java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: 17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
def dbData = queryResults;
def mailTable = "<table style='border: 1px solid #ccc;border-collapse: collapse;'>";
def size = 17;
mailTable += "<tr style='border-top: 3px solid #ccc;'><b><u><td style='padding: 10px;bgcolor=#4169E1;'>SKU</td><td style='padding: 10px;bgcolor=#4169E1;'>Currency</td><td style='padding:10px;bgcolor=#4169E1;'>Source</td><td style='padding: 10px;bgcolor=#4169E1;'>Pricing Sort</td><td style='padding: 10px;bgcolor=#4169E1;'>Role</td><td style='padding: 10px;bgcolor=#4169E1;'>Product Manager</td><td style='padding: 10px;bgcolor=#4169E1;'>Price</td><td style='padding: 10px;bgcolor=#4169E1;'>Layout</td><td style='padding: 10px;bgcolor=#4169E1;'>Description</td><td style='padding: 10px;bgcolor=#4169E1;'>Reference</td><td style='padding: 10px;bgcolor=#4169E1;'>Global</td><td style='padding: 10px;bgcolor=#4169E1;'>Status</td><td style='padding: 10px;bgcolor=#4169E1;'>Material</td><td style='padding: 10px;bgcolor=#4169E1;'>Business</td><td style='padding: 10px;bgcolor=#4169E1;'>SB</td><td style='padding: 10px;bgcolor=#4169E1;'>Group</td><td style='padding: 10px;bgcolor=#4169E1;'>GPH Code</td></u></b></tr>"
/**
* filling the html table with opportunity info
* */
def index;
dbData.each {row ->
mailTable += "<tr style='border-top: 3px solid #ccc;'>";
for (index = 0; index < size; ++index) {
mailTable += "<td style='padding: 10px;'>" + row.getAt(index) + "</td>";
}
mailTable += "</tr>";
}
mailTable += "</table>";
您正在从BoundsException获取数组索引,因为您正在尝试访问空数组中的元素,很可能是0个元素。我建议您在尝试从数组中获取元素之前检查数组是否为空。 我不太确定是哪个数组在代码中抛出错误,因为我不知道数据库调用的作用。但我猜不是dbData就是mailTable 试着这样做:
if (dbData.length != 0) {
//run your code here that access the elements
} else { //do nothing..or whatever you want to happen when it's empty, maybe
error? }
老实说,我对def一无所知。它是某种lisp方法吗?所以可能是java不理解索引值,因为它不是一个常见的int-index java变量。我可能错了,我不知道def方法。如果我完全错了,我很抱歉
干杯注意++索引。我会使用索引++