IndexOutOfBoundsException 中的错误,使用 Loop from Database 另一个类 Ja



我得到了一个java.lang.IndexOutOfBoundsException.这是我的代码:

Main.java

for (int i = 0; i < ordersList.size(); i++) {
if (ordersList.get(i).getUser_id() == ordersList.get(i)
.getPersonsList().get(i).getId()) {
System.out.println("Order: "
+ ordersList.get(i).getId()
+ "Person"
+ ordersList.get(i).getPersonsList().get(i)
.getName());
}
}

Database.java

MysqlPrepareStat = MysqlConn.prepareStatement(insertQueryStatement);
ResultSet result = MysqlPrepareStat.executeQuery();
while (result.next()) {
Orders orders = new Orders();
orders.setId(result.getInt("o.id"));
orders.setDate(result.getString("o.date_time"));
orders.setQuantity(result.getInt("o.quantity"));
Person persons = new Person();
orders.setUser_id(result.getInt("u.id"));
persons.setName(result.getString("u.name"));
persons.setSobrename(result.getString("u.sobrename"));
persons.setEmail(result.getString("u.email"));
persons.setId(result.getInt("u.id"));
persons.setCellphone(result.getInt("u.telefone"));
orders.addPerson(persons);
orderList.add(orders);
}

我想从我在订单列表中声明的订单中获取具有相同 ID 的人员列表

public List<Person> getPersonsList() {
return personsList;
}

public void addPerson(Person person) {
personsList.add(person);
}

if (ordersList.get(i(.getUser_id(( == ordersList.get(i( .getPersonsList

((.get(0(.getId((( 您要将 PersonList 添加到每个订单,并且该 PersonList 每个订单只有一个人。所以建议做 get(0( 而不是 get(i(。

请修复Main.java中的代码:

for (int i = 0; i < ordersList.size(); i++) {
if (ordersList.get(i).getUser_id() ==
ordersList.get(i).getPersonsList().get(0).getId()) {
System.out.println("Order: "+ ordersList.get(i).getId()+
"Person"+ ordersList.get(i).getPersonsList().get(0).getName());
}
}

最新更新