在 clojure 中使用 java 结构

Working with a java structure in clojure

我有一个 java.util.Collections$UnmodifiableList such things:

(.getGuilds bot)

如何遍历它,对每个方法调用一个方法 getName 并制作另一个包含所有名称的列表。

如果我理解正确的话,您唯一需要做的就是映射列表并获取名称。由于 java.util.Collections$UnmodifiableList 是可迭代的,clojure 会将其视为可序列集合。一个简单的例子:

user> (import java.util.Collections)
java.util.Collections

user> (def files (Collections/unmodifiableList
                  [(java.io.File. "aaa") (java.io.File. "bbb")]))
#'user/files

user> (map #(.getName %) files)
("aaa" "bbb")

所以,在你的情况下应该是这样的:

(map #(.getName %) (.getGuilds bot))