隨着在Java 7中引入的try-with-resource
,我驚訝地發現Lock
未被改裝成AutoCloseable
。這似乎是很簡單的,所以我下面增加它自己:java.util.concurrent.locks.Lock的AutoCloseable包裝中存在風險?
class Lock implements AutoCloseable {
private final java.util.concurrent.locks.Lock _lock;
Lock(java.util.concurrent.locks.Lock lock) {
_lock = lock;
_lock.lock();
}
@Override
public void close() {
_lock.unlock();
}
}
這工作與AutoCloseableReentrantReadWiteLock
類和用法如下:
try (AutoCloseableReentrantReadWiteLock.Lock l = _lock.writeLock()) {
// do something
}
因爲這看起來很簡單,規範使用汽車的 - 關閉RAII我在想這不應該是有一個很好的理由。有人知道嗎?
@rxg我將恢復大部分編輯,我的驚喜不是當它被引入時,但最近當我用它來鎖 –
沒有probs,但你能修復AutoCloseable的鏈接嗎? – rxg