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