【发布时间】:2015-12-06 01:53:19
【问题描述】:
我想扩展scala.Stream。当我尝试时,它告诉我不能,因为我没有所需的方法tailDefined。
class S[T](s:Stream[T]) extends Stream[T] {
}
当我尝试这个时,它告诉我tailDefined 受到保护:
class S[T](s:Stream[T]) extends Stream[T] {
def tailDefined = s.tailDefined
}
如何绕过这个限制并实现Stream 的扩展?
【问题讨论】:
-
您是否注意到“警告:不推荐从不可变包中的类 Stream 继承”?所以即使你现在设法让它工作,它也不会在未来的 Scala 中工作。
-
谢谢@SethTisue。那么你将如何(功能上)扩展
Stream? -
这取决于您想要扩展
Stream的动机。如果要添加新操作,请参阅 Alexey 的回答。否则,请考虑使用组合而不是继承。为了提供更好的答案,我们需要更多地了解您的用例。
标签: scala stream scala-collections