这是一个我在我们生产环境中运行的各种项目中零散看到的示例,是为了与执行数据库迁移的 Java 库(Flyway)进行互操作。
<pre>
;; 当你在Clojure中使用数组(并希望通过使用类型提示来改进性能)时,你必须确保编译器知道数组的类型。原始数组的类型提示为
;; ^longs,^chars,^doubles等;对于对象数组,你必须使用一个
;; 难以处理的结构,如^"[Ljava.lang.String;"
;;
(defn ^:private flyway
^Flyway
[datasource migration-locations]
(Flyway. (doto ^FluentConfiguration
(FluentConfiguration.)
(.dataSource datasource)
(.locations ^"[Ljava.lang.String;" (into-array String migration-locations)))))
;
commented by alexmiller