Liste verfügbarer Java-Pakete und Klassen innerhalb von clojure

9

In clojure, die Antworten auf Wie Sie die Funktionen von a auflisten Namespace? sind nützlich, wenn ich einen Namespace im Hinterkopf habe, insbesondere kann (ns-imports 'my-package) mir über Java-Code berichten, der importiert wurde. Ich kann die Liste der Namespaces mit (all-ns) finden. Gibt es eine ähnliche Möglichkeit, die Liste aller verfügbaren Java-Pakete zu finden und eine Vorschau der Java-Klassen anzuzeigen, die noch nicht importiert wurden?

Ich mache eine Menge JARs und .class-Dateien von Leiningen über :resource-paths bzw. :java-source-paths . Aber da ich neu in der Java-Codebasis bin, weiß ich wirklich nicht von Anfang an, welche Pakete definiert sind, um sie zu importieren. Ich könnte etwas mit find, xargs und grep machen, aber es wäre schön, diese Informationen programmatisch verfügbar zu haben. Darüber hinaus möchte ich in Zukunft in der Lage sein, "Reflektion" über die Java Codebasis innerhalb von Clojure zu machen, zum Beispiel wenn ich merke, wann eine neue Klasse definiert wurde.

In der LISP-Welt gibt es eine Funktion namens "do-external-symbols" und ich habe dafür gegooglet, diese Diskussion von 2007. Es scheint, dass die Dinge für Clojure selbst gelöst wurden, aber es ist weniger klar über Clojures Sicht auf Java.

    
Joe Corneli 17.04.2015, 04:17
quelle

2 Antworten

1

Soweit ich mich erinnere, können Sie Java-Code von Clojure aufrufen. Ich habe kürzlich eine Bibliothek namens "Reflections" von Google entdeckt, die alles in Ihrem Klassenpfad für Sie auflistet. Ich habe Klassen, die JPA-Entitäten mit dieser Bibliothek waren analysiert, es war ziemlich einfach zu bedienen.

    
Thomas Nagel 20.04.2015 18:34
quelle
1

Wenn Sie Cider / Emacs oder auch nur lein repl verwenden, gibt es eine gute Funktion zum automatischen Vervollständigen, die über den Tab-Button aufgerufen werden kann.

%Vor%

Diese Funktionalität scheint von der Kompliment von Alexander Yakushev angetrieben zu werden, also schlage ich vor, dass Sie genau hinsehen wie es funktioniert!

    
claj 28.05.2015 19:34
quelle

Tags und Links