在Scala2.10后提供了隐式类,可以使用implicit声明类,隐式类的非常强大,同样可以扩展类的功能,在集合中隐式类会发挥重要的作用。

    隐式转换函数优先级要高于隐式类.
    隐式类也可以当作一个普通的类来使用,这个类仅仅是多了个隐式转换功能,本质上还是一个类.

    格式要求:
    1.主构造必须要有一个参数,参数类型就是要转换的参数的类型
    2. 隐式类必须是内部类
    3.不能顶级
    4.其所带的构造参数有且只能有一个
    5.隐式类必须被定义在“类”或“伴生对象”或“包对象”里,即隐式类不能是顶级的。

    1. object TestImplicitClass {
    2. implicit class MyRichInt(arg: Int) {
    3. def myMax(i: Int): Int = {
    4. if (arg < i) i else arg
    5. }
    6. def myMin(i: Int) = {
    7. if (arg < i) arg else i
    8. }
    9. }
    10. def main(args: Array[String]): Unit = {
    11. println(1.myMax(3))
    12. }
    13. }

    案例2:
    **

    import java.io.File
    import scala.io.Source
    
    object Implicit4 {
      def main(args: Array[String]): Unit = {
    
        val content: String = new File("E:\\ZJJ_Neaten5.10\\ZJJ_Scala\\demo\\src\\main\\java\\implicitdemo\\Implicit2.scala")
          .readContent
        println(content)
      }
    
      // 隐式类必须是内部类
      implicit class RichFile(file: File) {
        def readContent: String = {
          Source.fromFile(file, "utf-8").mkString
        }
    
      }
    
    }
    

    输出 : 输出的就是文件的内容,这里就不粘贴了.