gpt4 book ai didi

java - 从客户数组列表中返回客户

转载 作者:行者123 更新时间:2023-12-01 23:43:23 27 4
gpt4 key购买 nike

所以我有这两种方法:第一个是遍历客户数组列表并返回一个值 c,该值是 String 类型 ID 与 中的客户之一匹配的客户。 ArrayList.

private Customer findCustomer(String id){
Customer c;
for(Customer customer : customers){
if(customer.getID().equals(id)){
c = customer;
return c;
}
}
return null;
}

然后我有第二个方法,当有人在我的临时电影租赁程序的 GUI 中访问此方法并传递电影、他们租赁的日期以及客户的 ID 时

public void movieRented(Movie m, Date rented, String id){
m.setDateRented(rented);
Customer c = findCustomer(id);
c.addMovie(m);
m.setIntStock(false);
}

我收到了有关这两种方法的错误消息,我只是想确保它们至少看起来正确。

最佳答案

请注意,您将返回 null,因此可能会出现 NullPointerException

private Customer findCustomer(String id){
Customer c;
for(Customer customer : customers){
if(customer.getID().equals(id)){
c = customer;
return c;
}
}
return null;
}

您可以考虑改进您的方法

private Customer findCustomer(String id){
Customer c=null;
for(Customer customer : customers){
if(customer.getID().equals(id)){
c = customer;
break;
}
}
return c;
}

或者现在更好,使用自定义异常

 private Customer findCustomer(String id) throws NoFoundCustomerException{
Customer c=null;
for(Customer customer : customers){
if(customer.getID().equals(id)){
c = customer;
break;
}
}
if(c == null){
throw new NoFoundCustomerException();
}

return c;
}

在客户端代码中,您可以执行以下操作:

public void movieRented(Movie m, Date rented, String id){
try{
m.setDateRented(rented);
Customer c = findCustomer(id);
c.addMovie(m);
m.setIntStock(false);
}catch(NotFoundedCustomerException e){
JOptionPane.showMessage(null,"Customer doesn't exist");
}
}

你的异常看起来像这样

public class NotFoundedCustomerException extends Exception{

public NotFoundedCustomerException(){
super();
}

public NotFoundedCustomerException(String message){
super(message);
}
.
.
.
}

关于java - 从客户数组列表中返回客户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com