SAM
SAM 的使用主要是为了匿名接口实现的 提供了一套 函数式的形参传入
代码实例
trait
package org.yonggan.day04
trait TraitDemo {
def sayHello(msg: String)
}
SAM 实现对比
bject App {
def main(args: Array[String]): Unit = {
/**
* java 中匿名内部类的实现方式
*/
val u0 = new TraitDemo () {
override def sayHello(msg: String) = {
}
}
/**
* scala 中 匿名内部类的实现方式
*/
val u = new () with TraitDemo {
override def sayHello(msg: String) = {
}
}
/**
* SAM实现方式 简化了 匿名内部类的实现
* 使用函数式 替换 匿名内部类
*/
val u1: TraitDemo = (msg: String) => {
// 函数体
}
}
}
SAM 简化了匿名结果实现的。 使用函数的作为入参