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.Move
    return false
    超出您的
    for
    loop.arrayList没有getDate方法。可能需要尝试approvedEvents.get(x).getDate.equals(date)
    if(isSameDay(approvedEvents.getDate(x), date)) {