有多少个 Callable 对象?

How many Callable objects are there?

有人可以帮我解决这个任务吗:

你得到了一个 Callable 对象。有人说它 return 是另一个 Callable 对象。而那个 Callable return 是另一个 Callable 对象!等等。您应该找出有多少个 Callable 对象。写一个解决这个问题的方法。

我不知道 "last" 可调用 return 是什么,也许不是 "null"。


    public static int determineCallableDepth(Callable callable) {
        return countCallable(0, callable);
    }

    public static int countCallable(int countCallable, Callable callToCount) {
        if (callToCount == null) {
            return countCallable;
        }
        try {
            return countCallable(countCallable + 1, (Callable)callToCount.call());
        } catch (Exception e) {
            e.printStackTrace();
            return countCallable;
        }
    }
}```

这是我完成此任务的代码。

public static int determineCallableDepth(Callable callable) {
    Object temp = null;
    try { 
        temp = callable.call();
    } catch (Exception e) {}
    return temp instanceof Callable ? 1 + determineCallableDepth((Callable) temp) : 1;
}

我认为你不需要任何澄清:D