(ns scratch.fastflip
(:gen-class
:extends java.util.Random
:implements clojure.lang.IFn))
(defn -invoke [^java.util.Random this]
(.next this 1))
加载文件我收到警告:
;scratch.coin=> Reflection warning, /home/user/scratch/src/scratch/fastflip.clj:8 - call to next can't be resolved.
#'scratch.fastflip/-invoke
注意我想通过消除反射来消除警告,而不是通过将警告机制设置为false。
答案 0 :(得分:2)
如果您使用的是1.3,这可能是因为next
采用的是int,而不是long,1是int。但你确定next
是你想要的吗?如果您正在进行硬币翻转,我会使用nextInt(2)
,因为next
看起来像实现内部。
编辑:这里的语法可用于执行您想要的操作而无需反射警告。
(ns test-genclass.core
(:gen-class
:extends java.util.Random
:implements [clojure.lang.IFn]
:exposes-methods {next inner}))
(set! *warn-on-reflection* true)
(defn -invoke [^test_genclass.core this]
(.inner this 1))
(defn -main [& args]
((test_genclass.core.)))