以下函数获取一个Serializable
的列表和一个lambda,用于序列化列表中的各个元素。
val os = BufferOutputStream()
fun <T : Serializable> writeList(list: List<Serializable>,emitter: (T,BufferOutputStream) -> Unit) {
os.writeInt(list.size)
for (v in list) { // v is of type Serializable
emitter(v as T,os) // why do we need to cast V as T?
}
}
当v
已经必须实现Serializable
时,为什么需要将类型为T
的{{1}}强制转换为T
? Serializable
是否确定采用<T : Serializable>
的函数/ lambda必须采用Serializable
?