1.3 RC 刚出来的时候,有人就不乐意了:说好的 Kotlin 的 SAM 呢?这个曾经存在于 1.3 的谣言当中的特性最终没有被加入到这个版本当中,群里有不少小伙伴表示:失望,哼。
何为 SAM
我们先来简单回顾下何为 SAM。它其实不是英文名 Sam,而是 Single Abstract Method,直接理解就是一个抽象的方法。Kotlin 很早就支持了对 参数包含只有一个方法的 Java 接口的 Java 方法的 SAM 转换,说起来有点儿拗口,我们看个例子:
public interface Runnable {
public abstract void run();
}
Runnable
是一个只有一个方法的 Java 接口,我们这时候还有这样的方法:
void execute(Runnable command){
...
}
我们注意到 execute