I have a java class in clojure, which comes from a method that returns classes. I want to case switch on these, like so:
(case type
java.lang.String (println "Found String" name)
java.lang.Long (println "Found Long" name)
java.nio.ByteBuffer (println "Found ByteBuffer" name)
java.lang.Boolean (println "Found Boolean" name)
java.math.BigDecimal (println "Found BigDecimal" name)
java.lang.Double (println "Found Double" name)
java.lang.Float (println "Found Float" name)
java.net.InetAddress (println "Found InetAddress" name)
java.lang.Integer (println "Found Integer" name)
java.util.Date (println "Found Date" name)
java.util.UUID (println "Found UUID" name)
java.math.BigInteger (println "Found BigInteger" name)
java.util.List (println "Found List" name)
java.util.Set (println "Found Set" name)
java.util.Map (println "Found Map" name))
But when I run this I get
java.lang.IllegalArgumentException: No matching clause: class java.util.UUID
Which is what is thrown when no matching case is found. How do I match the class in the case clause?