Java 具有时间和日期函数的递归

Java 具有时间和日期函数的递归,java,recursion,google-calendar-api,Java,Recursion,Google Calendar Api,我写了一个功能,它成为谷歌日历的一个事件,但它不起作用,我有一个例外,我从中了解到,这个功能是无限的。有什么想法 public boolean is_error(Event temp) throws IOException{ int anz=1; if (temp!=null){ if (temp.getSummary().equals(CalendarHelper.EventType.off)){ return false;

我写了一个功能,它成为谷歌日历的一个事件,但它不起作用,我有一个例外,我从中了解到,这个功能是无限的。有什么想法

    public boolean is_error(Event temp) throws IOException{
    int anz=1;
    if (temp!=null){
     if (temp.getSummary().equals(CalendarHelper.EventType.off)){
            return false;
     }
      if  (temp.getSummary().equals(CalendarHelper.EventType.work)){
            return true;
     }
    }


          anz++;
        return is_error(this.getLastWorkRelevantEvent(new Date(System.currentTimeMillis()-anz*24*60*60*1000L)));



    }

你的问题在于:

this.getLastWorkRelevantEvent(new Date(System.currentTimeMillis()-anz*24*60*60*1000L))
它总是返回null,这样您就永远不会进入

if (temp!=null){
 if (temp.getSummary().equals(CalendarHelper.EventType.off)){
        return false;
 }
  if  (temp.getSummary().equals(CalendarHelper.EventType.work)){
        return true;
 }
}
现在你有一个整数anz to的问题,它总是2

这样做代替:

public boolean is_error(Event temp, int anz) throws IOException{
    if (temp!=null){
        if (temp.getSummary().equals(CalendarHelper.EventType.off)){
            return false;
         }
         if  (temp.getSummary().equals(CalendarHelper.EventType.work)){
            return true;
         }
         //for fun do this:
         throw new RuntimeException("no equals is good");
     }
     return is_error(this.getLastWorkRelevantEvent(new Date(System.currentTimeMillis()-anz*24*60*60*1000L)),++anz);
}
现在,如果您得到runTimeException,那么故障在2IF中。否则,您将从“getLastWorkRelevantEvent…”返回空值


Greetz Chill.

我有两个问题:正确缩进代码,并发布您遇到的错误。chillworld我已更改代码,但我变成了:com.google.apphosting.api.deadlineExceedexception:此请求a9ad378e64490bd5于2014/01/15 14:31:13.419 UTC开始,并仍在2014/01/15 14:32:12.915 UTC执行。java.util.concurrent.locks.LockSupport.parknoslocksupport.java:226在java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanosAbstractQueuedSynchronizer.java:1033在java.util.concurrent.LockSupport.Parknoslocksupport.java:226在java.util.concurrentQueuedSynchronizer.doAcquireSharedNanosAbstractQueuedSynchronizer.java:1033中。然后你会发现你总是得到一个空值。修正这一点,为了让这个工作,如果它不是空的,那么故障是在你的前2个If'snp,我编辑了我的答案,也帮助你更快地看到哪里是问题。