我得到了一个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());
}
}