我有以下方法:
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 个不同位置进行更改。我会很感激任何想法。如果需要,我可以就这个问题提供更多说明。谢谢。