从JDK19+开始,以下内容无需添加类型提示即可成为反射性
(def x 10)
(Thread/sleep x)
有趣的是,在较早的JDK中,上述内容不具备反射性,但当你升级JDK时,反射就开始了。
如果使用native-image,你的程序可能会由于缺少反射配置而失败。
如果有一个接受数字的内置sleep函数将很好,这样我们就不会忘记添加类型提示,并且它会在JDK之间保持一致性。
例如。
(ns clojure.java.misc)
(defn sleep [x]
(if (number? x)
(Thread/sleep (long x))
....)
将clojure.java.misc的更好名称是welcome。也许只需将其命名为clojure.java
或者将其函数放到clojure.core
中?