型消去の結果同じ引数型になってしまうメソッドをオーバーロードする その2
以前の話の続き。
DummyImplicit
という型を使って下のような書き方をする作法もあるらしい。
使わない暗黙のパラメータを取ることで引数リストの数を区別しようというもの。
ちなみに、DummyImplicit
はscala.Predef
の中で
class DummyImplicit object DummyImplicit { implicit def dummyImplicit: DummyImplicit = new DummyImplicit }
とされているので、何もしなくてもこの暗黙のパラメータは解消される。 ダミーの暗黙のパラメータを使って区別する場合はこれを使うのがよい作法に思える。
implicit i1: DummyImplicit
とかいちいち書くのが面倒くさければ、
ClassTagを使って少し短く書ける。
どちらにしても相当気持ち悪い見た目をしていることには変わりない。 前回の方法とどちらを好むかは趣味がわかれるところ。
参考文献: 1. stackoverflow.com