2 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
我懷疑這里的問題是測試代碼中的這些行:
Random rnd = new Random();
int rndNum = rnd.nextInt();
...
System.out.println(n.lastName[rndNum]);
現(xiàn)在 rnd 并沒有真正關(guān)心它的邊界值或這里的最大范圍。你需要綁定它。所以,現(xiàn)在rnd.nextInt()可以產(chǎn)生 100、1000、10000...
這是你需要控制的
您可以做的是,將以下行重寫為:
int rndNum = rnd.nextInt();
作為
int rndNum = rnd.nextInt()%lastName.length;
注意:我沒有完成整個(gè)代碼,但我看到的第一個(gè)問題。試一試,如果還有問題,請告知。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
正如@Himanshu 所說,如果您無法控制隨機(jī)數(shù)的最大值,那么您的代碼很容易因 ArrayIndexOutOfBoundsException 而失敗
嘗試將獲取整數(shù)的行更改int rndNum = rnd.nextInt();
為int rndNum = rnd.nextInt(Names.lastName.length);
并且應(yīng)該可以正常工作。
添加回答
舉報(bào)