Groovy Documentation

## org.codehaus.groovy.util
[Java] Class LazyReference

    java.lang.Object
      java.util.concurrent.locks.AbstractOwnableSynchronizer
          java.util.concurrent.locks.AbstractQueuedSynchronizer
              org.codehaus.groovy.util.LockableObject
                  org.codehaus.groovy.util.LazyReference

    public abstract class LazyReference
    extends LockableObject

Soft reference with lazy initialization under lock

Constructor Summary
`LazyReference(ReferenceBundle bundle)`

Method Summary
`void` | `clear()`
`java.lang.Object` | `get()`
`java.lang.Object` | `initValue()`
`java.lang.String` | `toString()`

Methods inherited from class LockableObject
isHeldExclusively, lock, tryAcquire, tryRelease, unlock

Methods inherited from class java.util.concurrent.locks.AbstractQueuedSynchronizer

java.util.concurrent.locks.AbstractQueuedSynchronizer#toString(), java.util.concurrent.locks.AbstractQueuedSynchronizer#hasWaiters(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject), java.util.concurrent.locks.AbstractQueuedSynchronizer#isQueued(java.lang.Thread), java.util.concurrent.locks.AbstractQueuedSynchronizer#release(int), java.util.concurrent.locks.AbstractQueuedSynchronizer#hasQueuedThreads(), java.util.concurrent.locks.AbstractQueuedSynchronizer#getQueueLength(), java.util.concurrent.locks.AbstractQueuedSynchronizer#getQueuedThreads(), java.util.concurrent.locks.AbstractQueuedSynchronizer#getWaitQueueLength(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject), java.util.concurrent.locks.AbstractQueuedSynchronizer#getWaitingThreads(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject), java.util.concurrent.locks.AbstractQueuedSynchronizer#acquireInterruptibly(int), java.util.concurrent.locks.AbstractQueuedSynchronizer#tryAcquireNanos(int, long), java.util.concurrent.locks.AbstractQueuedSynchronizer#acquire(int), java.util.concurrent.locks.AbstractQueuedSynchronizer#acquireShared(int), java.util.concurrent.locks.AbstractQueuedSynchronizer#acquireSharedInterruptibly(int), java.util.concurrent.locks.AbstractQueuedSynchronizer#tryAcquireSharedNanos(int, long), java.util.concurrent.locks.AbstractQueuedSynchronizer#releaseShared(int), java.util.concurrent.locks.AbstractQueuedSynchronizer#hasContended(), java.util.concurrent.locks.AbstractQueuedSynchronizer#getFirstQueuedThread(), java.util.concurrent.locks.AbstractQueuedSynchronizer#hasQueuedPredecessors(), java.util.concurrent.locks.AbstractQueuedSynchronizer#getExclusiveQueuedThreads(), java.util.concurrent.locks.AbstractQueuedSynchronizer#getSharedQueuedThreads(), java.util.concurrent.locks.AbstractQueuedSynchronizer#owns(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject), java.util.concurrent.locks.AbstractQueuedSynchronizer#wait(long), java.util.concurrent.locks.AbstractQueuedSynchronizer#wait(long, int), java.util.concurrent.locks.AbstractQueuedSynchronizer#wait(), java.util.concurrent.locks.AbstractQueuedSynchronizer#equals(java.lang.Object), java.util.concurrent.locks.AbstractQueuedSynchronizer#hashCode(), java.util.concurrent.locks.AbstractQueuedSynchronizer#getClass(), java.util.concurrent.locks.AbstractQueuedSynchronizer#notify(), java.util.concurrent.locks.AbstractQueuedSynchronizer#notifyAll()

Constructor Detail

### LazyReference

    public LazyReference(ReferenceBundle bundle)

Method Detail

### clear

    public void clear()

### get

    public java.lang.Object get()

### initValue

    public java.lang.Object initValue()

### toString

    public java.lang.String toString()

Groovy Documentation