package org.jbox2d.pooling.stacks; import java.util.Stack; import org.jbox2d.pooling.TLStack; public abstract class DynamicTLStack<T> { private final TLStack<T> tlStack = new TLStack<T>(); public T get(){ Stack<T> stack = tlStack.get(); if(stack.isEmpty()){ stack.push(newObjectInstance()); stack.push(newObjectInstance()); stack.push(newObjectInstance()); } return stack.pop(); } public void recycle(T argObject){ tlStack.get().push(argObject); } protected abstract T newObjectInstance(); }