2016-06-18 2 views
2

Как можно импортировать Java-класс, расположенный в другом классе Java из Clojure?Импорт Java-класса в Java-класс от Clojure

Класс Я пытаюсь импортировать это Pixmap.Format находится в библиотеке LibGDX. Поскольку play-clj управляет интеграцией с LibGDX для Clojure, нет никакой проблемы, фактически импортирующей классы из самого LibGDX. Проблема заключается в импорте класса Format, который находится внутри класса Pixmap.

Я попробовал несколько разных вещей:

; This I have tried 
(ns pfft.test 
    (:import com.badlogic.gdx.graphics Pixmap.Format)) 

; And this 
(ns pfft.test 
    (:import com.badlogic.gdx.graphics Pixmap/Format)) 

; This 
(ns pfft.test 
    (:import com.badlogic.gdx.graphics.Pixmap.Format)) 

Я также пытались называть класс вроде этого:

(Pixmap/Format/RGBA8888) 

Но Clojure говорит мне, что нет такого поля, что там четко является.

Это тоже не работает:

((Pixmap/Format)/RGBA8888) 

Как и ...

/RGBA8888 

... не распознаваться.

ответ

5

Сепаратор вы ищете, $, так что вы можете импортировать вложенный класс, как это:

(import com.badlogic.gdx.graphics.Pixmap$Format) 

Или так:

(import (com.badlogic.gdx.graphics Pixmap$Format)) 

Затем вы можете получить доступ к статическим полям от Pixmap$Format примерно:

Pixmap$Format/RGBA8888 

this Stack Overflow question См и this part of the Clojure docs для получения дополнительной информации.

Смежные вопросы