возможно ли clojure читать и работать с классами (файлами .class), сгенерированными компилятором? - PullRequest
2 голосов
/ 07 октября 2011

можно ли читать и работать с классами (.class-файлами), созданными с помощью кода Java?

например) CalculateSum.java -> CalculateSum.class -> Clojure принимает CalculateSum.class и встраивает его в свойкод

Ответы [ 3 ]

2 голосов
/ 07 октября 2011

Clojure был разработан, чтобы охватить его хост-платформу, JVM.компилятор clojure создает файлы классов, которые когда-то были созданы, ведут себя так же, как файлы классов из любого другого источника;по сути, вы уже делаете это;)

Если вы хотите использовать класс Java, просто поместите оператор импорта в ваше пространство имен:

(ns my.project
  (:import [com.them.library A B C]))

, затем извлеките

http://clojure.org/java_interop что делать дальше

2 голосов
/ 07 октября 2011

Вам просто нужно убедиться, что файл класса находится в вашем пути к классам.

Вот пример кода.

hello.java:

 public class hello {
     public String sayHi() {
         return "hello world";
     }
 }

$ javac hello.java
$ java -cp clojure.jar:./ clojure.main
user=> (import 'hello) ;; Necessary in 1.2.1, but not 1.3.0
user=> (.sayHi (hello.))
"hello world"
1 голос
/ 07 октября 2011

Все Clojure - это чистая Java и работает на JVM. Может загружать и использовать любой допустимый класс Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...