不,该
Lock接口(也不是
ReentrantLock该类)都未实现该
AutoCloseable接口,而新的try-
with-resource语法必须使用该接口。
如果您想使其工作,可以编写一个简单的包装器:
public class LockWrapper implements AutoCloseable{ private final Lock _lock; public LockWrapper(Lock l) { this._lock = l; } public void lock() { this._lock.lock(); } public void close() { this._lock.unlock(); }}
现在您可以编写如下代码:
try (LockWrapper someLock = new LockWrapper(new ReentrantLock())){ someLock.lock(); // ...}
我认为您最好还是坚持使用旧语法。使锁定逻辑完全可见是更安全的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)