練習を兼ねて、scala.metaを使って普通のclassをcase classに進化させるライブラリを作った。 case classにすると自動で生成される以下のメソッド群をscalametaで模倣している。 toString copy equals apply unapply hashCodeはめんどくさいのでスキップ…。 @Case class Hoge(val n: Int) とか書くとだいたい case class Hoge(n: Int) と同じ感じになる、ということ。 使い方 mavenにあげているので、依存の追加は簡単。 libraryDependencies += "net.petitviolet" %% "acase" % "<latest-version>" でもマクロを有効にするための設定がいろいろ必要となる。 手順はここに書いた。setup これがどれくらい必要な