我正在寻找创建转发集合的最佳实践,例如 Google 中的 Guava : 例如,Scala 中的 ForwardingList 如下所示:
trait ForwardingList[T]
{
def delegate: List
}
但是我不清楚这个列表应该扩展哪些特征以及哪些方法必须被覆盖,因为有很多候选者
列表[T]
ListLike[T, ForwardingList[T]]
ListLike[T, List[T]]
最佳答案
您可以采取简单的方法并扩展 SeqProxy
:
import collection.SeqProxy
class ForwardingList[T](val self: List[T]) extends SeqProxy[T]
val xs = List(2,3,5,7,11,13)
val fs = new ForwardingList(xs)
println(fs.size) // 6
println(fs(0)) // 2
fs foreach println // 2,...,13
关于scala - 转发集合的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14257523/