我有一台ReentrantReadWriteLock。ReentrantReadWriteLock包含ReadLock和WriteLock作为子类。
I want to extend this ReadLock and WriteLock by my custom classes as
DummyReadLock and DummyWriteLock.那么我必须能够像下面这样做一些事情
final Lock lock = new DummyReadLock.readLock();或
final Lock lock = new DummyWriteLock.writeLock();有可能做到这一点吗?
发布于 2011-12-06 05:48:10
您可以:
class DummyReadLock extends ReentrantReadWriteLock.ReadLock {
private ReentrantReadWriteLock.ReadLock readLock;
// inherited constructor
protected DummyRLock(ReentrantReadWriteLock rwlock) {
super(rwlock);
this.readLock = rwlock.readLock();
}
public ReentrantReadWriteLock.ReadLock readLock() {
return readLock;
}
}发布于 2011-12-06 05:49:12
是的,这在某种程度上应该是可能的。我不确定您到底为什么要这样做,但是下面的代码将扩展ReadLock。
public class DummyReadLock extends ReentrantReadWriteLock.ReadLock
{
public DummyReadLock(ReentrantReadWriteLock arg0)
{
super(arg0);
}
}请注意,ReadLock的构造函数需要一个ReentrantReadWriteLock作为参数,因此您不能像在示例中所示那样调用它。
https://stackoverflow.com/questions/8392221
复制相似问题