public void free(Object object) {
if (object == null) {
throw new IllegalArgumentException("object cannot be null.");
}
ReflectionPool pool = pools.get(object.getClass());
if (pool == null) {
return; // Ignore freeing an object that was never retained.
}
pool.free(object);
}