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);
}

私の質問は、(2 番目のメソッドが呼び出された場合に) ロックを 2 回取得せずにこれを達成するにはどうすればよいかということです。元のメソッドの署名を変更したくありません。システム内の 10 か所で変更を行うことになるからです。アイデアをいただければ幸いです。必要に応じて、質問に関してより明確にすることができます。ありがとう。

4

0 に答える 0