目前我有一个包含用户名和密码的文本文件,并将其放在一个对象中。但是,在尝试登录时,它表示数组索引超出范围。看不出错误是什么。
Object[][] data = new Object[UserDetails.size()][2];
for(int i=1; i<UserDetails.size(); i++) {
data[i][0] = UserDetails.get(i)[0];
data[i][1] = UserDetails.get(i)[1];
System.out.println(data[i][0]);
System.out.println(data[i][1]);
boolean match = false;
boolean limit = false;
int i=1;
do{
if((data[i][0] == username) && (data[i][1] == password)){
match = true;
UsernameField.setText(null);
PasswordField.setText(null);
close();
TablePage table;
table = new TablePage(username);
table.setVisible(true);
JOptionPane.showMessageDialog(null, "Sucessfully Logged In","Login Success",JOptionPane.INFORMATION_MESSAGE);
close();
}else{
if(i == UserDetails.size()){
limit=true;
}
i++;
}
} while(match==false || limit == true);
答案 0 :(得分:1)
如果UserDetails.size() = 0
,则数据大小为[0] [2]。
之后你设置i = 1,然后有一个if(data[i][0])
。
如果UserDetails.size() = 0
,这将导致越界错误;