其中有多少个可调用对象?

问题描述 投票:0回答:1

有人可以帮助我解决此任务:

您会得到一个Callable对象。有人说它返回另一个Callable对象。然后该Callable返回另一个Callable对象!等等。您应该找出有多少可调用对象。编写解决此问题的方法。

我不知道“最后一个”可赎回收益是什么,也许不是“空”。


    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;
        }
    }
}```
java multithreading callable
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.