Java 1.7 String switch could be used, but that doesn't account for types derived from those easily.  Reflection might even be required.  I could create a mapping of types but think that is going to far and could blow up if the wrong type was passed in.  I'm open to other solutions.