我试图存储所有这些元素,但我收到java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
这样的错误,而且我不确定我的错误是什么。
public List<AddUserInformation> insertData(AddUserDetail user) {
List<AddUserInformation> inserted = null;
try{
List<AddUserInformation> addUserInformation = new ArrayList<AddUserInformation>() ;
ArrayList accName = new ArrayList();
for (int i = 0; i < user.getListofaccounts().toArray().length ; i++) {
accName.add(user.getListofaccounts().get(i).getAccountName());
}
List<AddUserInformation> addUserInformation1 = new ArrayList<AddUserInformation>();
for (int i = 0; i< accName.toArray().length; i++) {
addUserInformation1.get(i).setUserID(user.getUserId());
addUserInformation1.get(i).setUsername(user.getUsername());
addUserInformation1.get(i).setPassword(user.getPassword());
addUserInformation1.get(i).setEmailid(user.getEmailid());
List<AddUserAccountDetails> adduseraccountdetails = new ArrayList<>();
addUserInformation1.get(i).setAccountName(user.getListofaccounts().get(i).getAccountName());
addUserInformation1.get(i).setPermission_id(user.getListofaccounts().get(i).getPermission_id());
}
inserted = adduserInformationDao.saveAddUserInfo(addUserInformation1);
} catch (Exception e) {
LOGGER.error("Exception in adding of account to a user " + user.getUsername(), e);
}
return inserted;
}
事情是accName包含多少个帐户让我们说&#39; n&#39;作为列表,在第二个&#34; for&#34;最后循环以替换新值并显示最后的列表值。
答案 0 :(得分:1)
声明:
List<AddUserInformation> addUserInformation1 = new ArrayList<AddUserInformation>();
创建新的空ArrayList
,因此当您在for循环中编写addUserInformation1.get(i)
时,您正尝试访问索引{{1}处的元素但是列表仍然是空的(0
处没有元素),所以你得到了例外。
在尝试使用0
元素之前,您必须在列表中添加一些内容(例如,调用add(...)
方法)。
答案 1 :(得分:0)
正如罗伯特所说,您正在尝试访问不存在的元素。
注意:List<AddUserAccountDetails> adduseraccountdetails = new ArrayList<>();
永远不会被使用..
您可以创建类AddUserInformation
的对象,然后将其添加到列表中,如下所示:
public List<AddUserInformation> insertData(AddUserDetail user) {
List<AddUserInformation> inserted = null;
try{
List<AddUserInformation> addUserInformation = new ArrayList<AddUserInformation>() ;
ArrayList accName = new ArrayList();
for( int i = 0; i < user.getListofaccounts().toArray().length ; i++ ) {
accName.add(user.getListofaccounts().get(i).getAccountName());
}
List<AddUserInformation> addUserInformation1 = new ArrayList<AddUserInformation>();
for(int i = 0; i< accName.toArray().length; i++) {
AddUserInformation obj = new AddUserInformation ();
obj.setUserID(user.getUserId());
obj.setUsername(user.getUsername());
obj.setPassword(user.getPassword());
obj.setEmailid(user.getEmailid());
obj.setAccountName(user.getListofaccounts().get(i).getAccountName());
obj.setPermission_id(user.getListofaccounts().get(i).getPermission_id());
addUserInformation1.add(obj);
}
inserted = adduserInformationDao.saveAddUserInfo(addUserInformation1);
}catch (Exception e) {
LOGGER.error("Exception in adding of account to a user " + user.getUsername(), e);
}
return inserted;
}