如何从Clojure导入位于另一个Java类中的Java类?
我尝试导入的类是位于LibGDX库中的Pixmap.Format。由于play-clj处理与LibGDX for Clojure的集成,因此从LibGDX本身实际导入类没有任何问题。问题在于导入位于Pixmap类中的Format类。
我尝试过几件不同的事情:
; 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
......根本不被承认。
答案 0 :(得分: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。