leinを使っていることを想定。defstruct
などと違ってdefrecord
はJavaのクラスを、defprotocol
はJavaのインターフェイスを実際に生成してくれます。type hintsを与えたいときなどなどに便利ですが、落とし穴があります(はまった)。
lein run
やlein test
を走らせるときにdefrecord
などは自分でコンパイルしないと修正が反映されません。なので、defrecord
などを含むときにはlein compile && lein run
とやるかclassesのディレクトリを削除する必要がありそうです。
nsに:reload
とかを付けると解決されそう(?)ですが、ソースコードのほうは汚したくないので。。。