相关疑难解决方法(0)

在Clojure代码中嵌入任意对象

我想在Clojure代码中嵌入一个Java对象(在本例中为BufferedImage),eval稍后可以使用.

创建代码工作正常:

(defn f [image]
     `(.getRGB ~image 0 0))
=> #'user/f

(f some-buffered-image)
=> (.getRGB #<BufferedImage BufferedImage@5527f4f9: type = 2 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=ff000000 IntegerInterleavedRaster: width = 256 height = 256 #Bands = 4 xOff = 0 yOff = 0 dataOffset[0] 0> 0 0)
Run Code Online (Sandbox Code Playgroud)

但是在尝试时会出现异常eval:

(eval (f some-buffered-image))
=> CompilerException java.lang.RuntimeException: Can't embed object in code, maybe print-dup not defined: BufferedImage@612dcb8c: type = 2 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=ff000000 IntegerInterleavedRaster: width = 256 height = …
Run Code Online (Sandbox Code Playgroud)

eval metaprogramming clojure

5
推荐指数
1
解决办法
1294
查看次数

标签 统计

clojure ×1

eval ×1

metaprogramming ×1