完成这个任务的最简单方法是
(case (.getName (class c))
"java.lang.String" "We got a string!"
"[[I" "An array of arrays of int.")
我建议直接使用字符串而不是尝试将它们转换为符号,因为Java类的名称可能非常繁琐,如果它是数组,则前方会有方括号,如果是嵌套类,则包含内嵌的美元符号。
还要注意,仅仅名称不足以唯一标识一个类;可能存在由不同类加载器加载且不互相兼容的具有相同名称的类。然而,在大多数情况下,当你考虑这种类型的 case
表达式时,这可能不会成问题。