2016-09-04 53 views
-1
public void addTransaction(Transaction t){ 
    mSize++; 
    Transaction[] temp = new Transaction[mSize]; 
    System.arraycopy(mTransactions, 0, temp, 0, mSize - 1); 
    temp[-1] = t // ERROR HERE 
    mTransactions = temp; 
} 

temp[-1]应更换温度的最后一个元素,里面是空的,与传入的参数T,而是错误。Java的ArrayIndexOutOfBoundsException异常,我不知道为什么还是做什么

只要temp的大小大于1,这个异常不应该发生的权利?它所要做的就是修改最后一个元素。

+1

刚刚接触某种语言并不是没有熟悉基础知识的借口。 –

+1

.....或寻找类似的问题。 –

+0

这不是真的重复。代码是正确的,正如OP对AIOOBE的理解一样,除了一个小小的错字或误解之外。 – shmosel

回答

3

-1是无效的数组索引。如果您尝试设置最后一个元素,它应该是

temp[temp.length-1] = t; 
+1

我在Python中有一点背景,因此[-1]。谢谢你的帮助。 – MGStone

相关问题