¿Qué es una clase implícita?
I. El concepto de clase implícita
La llamada clase implícita: es una clase que agrega restricciones implícitas a una clase. ¡Su función principal es fortalecer la clase!
Por ejemplo:
clase implícita ImpInt(tmp: Int){
def add(tmp2: Int) = tmp tmp2
} 123
Agregar "implícito" delante de la clase A través de esta clase implícita, los datos de tipo Int pueden tener el método add.
Dos ejemplos de tipos implícitos
import scala.io.Sourceimport java.io.File/**
* Clase implícita
*Su función principal es fortalecer las clases
*
* Creado por zhiwang el 22/7/2015.
*/object Implicit_Class {
importar Context_Helper._ ?def main(args: Array[String]) {
println( 1.add(2) ) ? /p>
}
}objeto Context_Helper{
clase implícita ImpInt(tmp:Int){
def add( tmp2: Int) = tmp tmp2
}
clase implícita FileEnhance(archivo: Archivo){
def read() = Source.fromFile(file.getPath ).mkString
}
}
}12345678910111213141516171819202122232425262728293031
3. Análisis del proceso de ejecución
Cuándo 1. Al agregar (2), el compilador Scala no informará un error de inmediato, pero verificará si hay un calificador explícito en el alcance actual y los parámetros que se pueden usar como parámetros en el constructor serán Int. Para una clase que usa Int como parámetro de constructor y tiene un método add, después de buscar, se encontró que ImpInt cumple con los requisitos
Utilice la clase implícita ImpInt para ejecutar el método add