0

我有以下方法:

public foo bar(String id) {
    Lock localLock = lockUtil.lock(id);
    try {
        do something;
        return foo;
    } finally {
        lock.unlock();
    }
}

我需要重写此方法以获取另一个参数。

public foo bar(String id, Integer index) {
    Lock localLock = lockUtil.lock(id);
    try {
        do something with index;
    } finally {
        lock.unlock();
    }

    return bar(id);
}

我的问题是,如何在不获得两次锁的情况下实现这一点(以防调用第二种方法)?我不想更改原始方法的签名,因为这意味着在系统中的 10 个不同位置进行更改。我会很感激任何想法。如果需要,我可以就这个问题提供更多说明。谢谢。

4

0 回答 0