I've done some code so you can obtain Object of any Class from Pool, take a look at it, is it safe? At least it works.MultiPool class has method obtain with Class param, so can know from which inner-pool obtain Object.import com.badlogic.gdx.utils.Pool;import java.lang.reflect.Modifier;import java.util.HashMap;public class MultiPool {    public class MultiPoolException extends Exception {        public MultiPoolException(String message) {            super(message);        }    }    public class AnyPool extends Pool<Object> {        Class<?> type;        AnyPool(Class<?> type) {            this.type = type;        }        @Override        protected Object newObject() {            try {                return type.newInstance();            } catch (InstantiationException e) {                e.printStackTrace();            } catch (IllegalAccessException e) {                e.printStackTrace();            }            return null;        }    }    HashMap<Class<?>, AnyPool> pools = new HashMap<Class<?>, AnyPool>();    private void initializePool(Class<?> type) {        pools.put(type, new AnyPool(type));    }    @SuppressWarnings(unchecked)    public <T> T obtain(Class<?> type) {        if ( Modifier.isAbstract(type.getModifiers()) ) {            (new MultiPoolException(type.getName() +  is abstract.)).printStackTrace();            return null;        }        if ( pools.get(type) == null ) initializePool(type);        return (T) pools.get(type).obtain();    }    public void free(Object object) {        Class<?> type = object.getClass();        if ( pools.get(type) == null ) initializePool(type);        pools.get(type).free(object);    }}Usage:MultiPool multiPool = new MultiPool();String abc = multiPool.obtain(String.class);SomeOtherClass test = multiPool.obtain(SomeOtherClass.class);multiPool.free(test);
Multi class-type Object pool based on Libgdx Pool
java;android;generics;libgdx