这样做是最简单的
(case (.getName (class c))
"java.lang.String" "We got a string!"
"[[I" "An array of arrays of int.")
我建议直接使用字符串,而不是尝试制作符号,因为Java类的名称可能会变得非常复杂,如果是一个数组,则前面的方括号,如果是一个嵌套类,则嵌入了美元符号。
还要记住,仅仅名称还不够唯一标识一个类;你可能有不同类加载器加载的具有相同名称的类,这些类之间不互相兼容。然而,对于大多数你考虑这类case
表达式的场景,这可能不会成为一个问题。