invisible meerkat
invisible meerkat

Reputation: 291

Working with a java structure in clojure

I have a java.util.Collections$UnmodifiableList of such things:

(.getGuilds bot)

How do I iterate over it, call a method getName on each one and make another list of all the names.

Upvotes: 3

Views: 125

Answers (1)

leetwinski
leetwinski

Reputation: 17859

If i understand you correctly, the only thing you need to do is simply map over the list and get names. Since java.util.Collections$UnmodifiableList is iterable, clojure will treat it as sequable collection. A simple example:

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")

so, in your case it should be something like this:

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

Upvotes: 6

Related Questions