从JDK19+开始,以下内容无需添加类型提示即可实现反射
(def x 10)
(Thread/sleep x)
复杂之处在于,在较早期的JDK中,上述内容不进行反射,但当您升级JDK时,反射才开始。
如果使用native-image,则程序可能由于缺失反射配置而开始失败。
有一个接受的数字的内置睡眠函数会很好,这样我们就不需要忘记添加类型提示,并且它们在各种JDK中进行一致的工作。
例如:
(ns clojure.java.misc)
(defn sleep [x]
(if (number? x)
(Thread/sleep (long x))
....)
clojure.java.misc
的更好名称是welcome。也许只需要clojure.java
或者将此函数放入clojure.core
?