我之前创建了一个程序,其中包含一个customerList,它通过courseList向每个客户添加了课程。现在我必须修改程序(有一个新的客户列表),如果一个客户没有注册任何课程,就抛出一个名为CustomerNotEnrolledException
的异常。
我从createInvoice
类中的Customer
方法抛出异常,并在测试类中处理它。我的问题是:
如何编写for
循环来检查每个客户中的这些课程。
我之前声明的两个数组是:
ArrayList<Course> courseList = new ArrayList<Course>();
ArrayList<Customer> customerList = new ArrayList<Customer>();
答案 0 :(得分:0)
根据您的构思方式,它可能非常简单 您可以在构造中检查调用代码是否提供了非空的课程列表,或者您可以使用检查它的方法。如果课程列表为null或为空,则抛出异常
实施例:
在createInvoice
方法中,您可以在进一步处理之前调用checkCourseEnrollment()
public class Customer {
private List<Course> courses;
public Customer() {}
public Customer(List<Course> courses) throws CustomerNotEnrolledException {
// Check here if the constructor receives any course list
// If not trigger the exception
if (null == courses || courses.size() == 0) {
throw new CustomerNotEnrolledException(/* potential parameters here */);
}
// continue constructor initialization process here
this.courses = courses;
}
public void checkCourseEnrollment() throws CustomerNotEnrolledException {
if (null == this.courses || this.courses.size() == 0) {
throw new CustomerNotEnrolledException(/* potential parameters here */);
}
}
}