* gen-class 勉強会 プログラム | No. | タイトル | 担当 | レベル | |-----+--------------------------+------------+----------| | 1 | Java のクラスの作り方 | @tnoda\_ | 未経験者 | | 2 | Docstring 逐条講義 | @tnoda\_ | ビギナー | | 3 | gen-class の内部実装の話 | @athos0220 | 上級者 | | 4 | アノテーションの使い方 | @tnoda\_ | 中級者 | | 5 | gen-class クイズ | @tnoda\_ | 中級者 | ※参加者が全員中級者以上の場合は No.1, 2 は省略します。 ** 1. Java のクラスの作り方 Clojure の Java interop について、gen-class, proxy, reify の使い分けも含めて解説します。 ** 2. Docstring 逐条講義 Clojure でも屈指の長さを誇る gen-class の docstring を一行一行丁寧に読み解いていきます。 分かりにくいと評される gen-class ですが、大事なことは docstring に全部書いてあったりします。 ** 3. gen-class の内部実装の話 gen-classで生成されるクラスの基本的な機能は、メソッドの呼び出しを対応する関数へ委譲することです。 この機能がgen-class内部でどのように実現されているかを説明します。 ** 4. アノテーションの使い方 完全に undocumented ですが、 Clojure でも Java アノテーションを使えます。 Java アノテーションの基本から、gen-class での使い方までを解説します。 ** 5. gen-class クイズ Clojure の Java interop はよくてきているので、そのほとんどの場合は問題なく Java と連携することができますが、ごくまれに、殺意の起こるパターンが存在します。 そのパターンと、gen-class での解決法について一緒に考えます。