Implicit Classとは
Scalaでは暗黙の型変換を使用し、継承を使わず型を拡張したかのように扱うことができます。
そのためには変換後のクラスと変換用のメソッドが必要だったのですが、Scala2.10から変換後のクラスと変換用のメソッドを用意しなくても、直感的に暗黙の型変換を記述できるImplicit Classが導入されました。
例
Implicit Classは、クラス宣言にimplicitキーワードを付与します。
◆java.io.FIleを拡張するImplicit Class
~~~
implicit class ReadFile(file: java.io.File) {
def asString: String = {
// ファイルの内容を読み込んで文字列を返す
}
}
// implicit Classで定義したメソッドを使用
val file = new java.io.File("sample.scala")
plintln(file.asString)
~~~