This is the way to access nested classes in Clojure. In this case, you're accessing Entry
, which is an interface defined inside the Map
interface
In Java, you'd simply write java.util.Map.Entry
, in Clojure you need to use the dollar sign: java.util.Map$Entry
From the Clojure documentation on Java interoperability:
The '.' special form is the basis for access to Java. It can be considered a member-access operator, and/or read as 'in the scope of'.
If the first operand is a symbol that resolves to a class name, the access is considered to be to a static member of the named class. Note that nested classes are named EnclosingClass$NestedClass
, per the JVM spec. Otherwise it is presumed to be an instance member and the first argument is evaluated to produce the target object.