这是一个在我们的生产环境中运行的各种项目中散乱使用的示例,它是为了方便与执行数据库迁移(Flyway)的Java库进行交互。
<pre>
;; 当你在 Clojure 中工作,与数组操作相关(并希望利用性能
;; 通过使用类型提示进行改进),您必须确保编译器已知道数组类型。
;; 原始数组的类型提示是 ^longs、^chars、^doubles 等;对于对象数组,您必须使用一个不便于书写的构造,如 ^"[Ljava.lang.String;"
;;
(定义私有函数 ^:private flyway
^Flyway
[datasource migration-locations]
(Flyway. (doto ^FluentConfiguration
(FluentConfiguration.)
(.dataSource datasource)
(.locations ^"[Ljava.lang.String;" (into-array String migration-locations)))))
</pre>