如何通过实现 tailDefined 来扩展 Stream

how to extend Stream by implementing tailDefined

我想延长 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 的扩展?

如果你想"add new methods"到Stream,使用隐式类:

implicit class S[T](s:Stream[T]) {
  def method1 = ...
}

val s: Stream[Int] = ...
s.method1