完成这件事的最简单方法是
(case (.getName (class c))
"java.lang.String" "We got a string!"
"[[I" "An array of arrays of int.")
我建议只使用字符串而不是尝试使它们成为符号,因为Java类的名称可能会变得很奇怪,如果它是一个数组,则开头有方括号,如果它是一个嵌套类,则包含嵌入的美元符号。
还要记住,只有一个名称不足以唯一标识一个类;你可能有不同类加载器加载的具有相同名称的类,这些类加载器相互之间不兼容。然而,对于大多数考虑这种情况的case
表达式的情形,这可能不会是一个问题。