Question

Quelqu'un sait s'il existe un équivalent Clojure pour Pythons « dir ». Fondamentalement, je dois connaître les fonctions que je peux faire appel à quelque chose ou plus spécifiquement pour des objets Java Je veux connaître les méthodes et propriétés disponibles (je ne sais pas si en java ils sont appelés méthodes et propriétés, c'est C # lingo).

Était-ce utile?

La solution

clojure.contrib.repl-utils/show pour une utilisation au REPL:

user=> (use '[clojure.contrib.repl-utils :only (show)])
nil
user=> (show String)
===  public final java.lang.String  ===
[ 0] static CASE_INSENSITIVE_ORDER : Comparator
[ 1] static copyValueOf : String (char[])
[ 2] static copyValueOf : String (char[],int,int)
[ 3] static format : String (Locale,String,Object[])
[ 4] static format : String (String,Object[])
...

Sinon, peut-être quelque chose comme:

user=> (map #(.getName %) (.getMethods String))
("equals" "toString" "hashCode" "compareTo" ...)

.getFields et .getConstructors en conséquence.

Autres conseils

L'espace de noms clojure.repl (qui est disponible depuis Clojure 1.2) contient la macro dir et la fonction dir-fn :

user=> (clojure.repl/dir clojure.main)   
load-script
main
repl
...

user=> (clojure.repl/dir-fn 'clojure.main)
(load-script main repl repl-caught repl-exception 
 repl-prompt repl-read skip-if-eol skip-whitespace 
 with-bindings)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top