@ Override public synchronized T get ( ) { T val ; synchronized ( this ) { if ( valRef == null || ( val = valRef . get ( ) ) == null ) { val = make ( ) ; valRef = new WeakReference < T > ( val ) ; } } return val ; }
Get the cached object . If the object is not in memory it is recreated .