0

私は持ってい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();

これを達成することは可能ですか?

4

2 に答える 2

0

次のことができます。

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-05T21:48:10.380 に答える
0

はい、それは可能なはずです。なぜこれを行う必要があるのか​​正確にはわかりませんが、たとえば、以下のコードは ReadLock を拡張します。

public class DummyReadLock extends ReentrantReadWriteLock.ReadLock
{
  public DummyReadLock(ReentrantReadWriteLock arg0)
  {
    super(arg0);
  }
}

ReadLock のコンストラクターにはパラメーターとして ReentrantReadWriteLock が必要であるため、例で示したように正確に呼び出すことはできないことに注意してください。

于 2011-12-05T21:49:11.717 に答える