### Question:
Recyclers { public final boolean recycle(T o, Handle handle) { if (handle == NOOP_HANDLE) { return false; } DefaultHandle h = (DefaultHandle) handle; final Stack<?> stack = h.stack; if (h.lastRecycledId != h.recycleId || stack == null) { throw new IllegalStateException("recycled already"); } if (stack.parent != this) { return false; } if (o != h.value) { throw new IllegalArgumentException("o does not belong to handle"); } h.recycle(); return true; } protected  Recyclers(); protected  Recyclers(int maxCapacityPerThread); @SuppressWarnings("unchecked") final T get(); final boolean recycle(T o, Handle handle); final int threadLocalCapacity(); final int threadLocalSize(); static final Handle NOOP_HANDLE; }### Answer:
@Test public void testRecycle() { final Recyclers<RecyclableObject> recyclers = newRecyclers(16); final RecyclableObject object = recyclers.get(); recyclers.recycle(object, object.handle); final RecyclableObject object2 = recyclers.get(); Assert.assertSame(object, object2); recyclers.recycle(object2, object2.handle); }