TL;DR
- Clojure の Java サポートは、Lisp の表現力に Java 呼び出しのための構文上の工夫を加えているので強力で、下層の Java を直接呼び出せるので軽量である。
- Java の型をそのまま使い、
reify、defrecord、proxyでインタフェースの実装やクラスの継承を行い、Java からはclojure.java.api.Clojureで Clojure を呼べる。 - 検査例外を処理しなくてよく、
ex-infoとwith-openで例外処理を簡単に書ける。パフォーマンスは、測定してから型ヒントやプリミティブ型で必要な部分だけを最適化する。
内容
Clojure の Java サポートは強力かつ軽量である。強力というのは、Lisp の表現力に、Java 呼び出しのための構文上の工夫を加えているからである。軽量というのは、下層にある Java を直接呼び出せるということである。各節のまとめは次のページにある。
- Programming Clojure, Third Edition 第10章 Clojure で Java のオブジェクトを作る
- Programming Clojure, Third Edition 第10章 Java から Clojure を呼び出す
- Programming Clojure, Third Edition 第10章 例外処理
- Programming Clojure, Third Edition 第10章 パフォーマンスのための最適化
- Programming Clojure, Third Edition 第10章 Java の配列を扱う