我有以下方法:
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个不同位置进行更改。我很欣赏任何想法。如果需要,我可以就这个问题作出更多澄清。感谢。