public final class QueueElement { private final String _query; private final List _pairs = new FastList(); public QueueElement(String query) { _query = query; } public void setInt(int index, int value) { _pairs.add(new ElementPair(Integer.class, value)); } // ... private final class ElementPair { private final Class _cl; private final Object _value; private ElementPair(Class cl, Object value) { _cl = cl; _value = value; } private Class getType() { return _cl; } private Object getValue() { return _value; } } public prepare(PreparedStatement ps) { for (ElementPair pair : _pairs) { if (pair.getType() == Integer.class) ps.setInt(pair.getValue()); // ... } } }