Java 如果构造函数不断给出方法未定义为指定Arraylist的错误,如何返回布尔值?
据说,该节目将返回场地是否在指定日期可用;而可用性是通过循环通过批准的事件列表来确定的,以查看任何事件上的日期是否与参数给出的日期匹配。 然而,我给出了以下代码:Java 如果构造函数不断给出方法未定义为指定Arraylist的错误,如何返回布尔值?,java,Java,据说,该节目将返回场地是否在指定日期可用;而可用性是通过循环通过批准的事件列表来确定的,以查看任何事件上的日期是否与参数给出的日期匹配。 然而,我给出了以下代码: private ArrayList<Event> approvedEvents=new ArrayList<Event>(); public boolean available(Date date) { //need to finish and fix this code for (int
private ArrayList<Event> approvedEvents=new ArrayList<Event>();
public boolean available(Date date) { //need to finish and fix this code
for (int x=0; x <= approvedEvents.size(); x++) {
if(approvedEvents.getDate(x) == date) {
return true;
}
return false;
}
}
private ArrayList approvedEvents=new ArrayList();
公共布尔值可用(日期){//需要完成并修复此代码
对于(int x=0;x而言,您的问题是:
您正在对事件列表而不是特定事件调用getDate()
您应该使用equals()
来比较日期,而不是=
您的退货声明放错了地方
下面是修复这些问题的代码的替代版本,并向您展示了如何更直接地迭代事件列表:
private ArrayList<Event> approvedEvents=new ArrayList<Event>();
public boolean available(Date date) { //need to finish and fix this code
for (Event event: approvedEvents) {
if (event.getDate().equals(date)) {
return true;
}
}
return false;
}
要使用此功能,请执行以下操作:
if(isSameDay(approvedEvents.getDate(x), date)) {
注意:上面的函数取自。错误是正确的;ArrayList
没有名为getDate
的方法。没有什么要说的。approvedEvents.get(x).getDate()
并且您很可能不想将该结果与=
进行比较,而是与equals
进行比较,或者考虑一些差异,或者只提取小时或天,或者……您的return
语句位于错误的位置。事实上,您总是在对进行一次迭代后从函数返回oop.Movereturn false
超出您的for
loop.arrayList没有getDate方法。可能需要尝试approvedEvents.get(x).getDate.equals(date)
if(isSameDay(approvedEvents.getDate(x), date)) {