code: @SuppressWarnings("unchecked")
  	<K, E extends PoolableObject<V>> E initialize(PoolKey<K> key, IKeyedObjectPool<?, V> pool) {
  		this.key = key;
  		this.pool = pool;
  		return (E) this;
  	}
docs: Initializes this Object when initially created by the Pool for allocation
  
  @param <K> The Key wrapped Type
  @param <E> the Entry Type
  @param key The Key which is associated with this Pool Object
  @param pool the pool creating this allocation
  @return Poolable Object