小编Him*_*hra的帖子

为什么泛型类型不能在scala中使用继承?

所以这是代码:

package week4
object expr {
  abstract class Expr[T] {
    def eval:T = this match {
      case Number(x)   => x
      case Sum(e1, e2) => e1.eval + e2.eval
    }
    def show: String = this match {
      case Number(x)   => "" + x
      case Sum(e1, e2) => "(" + e1.show + "+" + e2.show + ")"
    }
  }
  case class Number[T](val value: T) extends Expr {
  }
  case class Sum[T](val e1: Expr[T], val e2: Expr[T]) extends Expr {
  }
}
Run Code Online (Sandbox Code Playgroud)

除了我得到所有案例比较的错误:

构造函数无法实例化为期望的类型; …

generics scala invariants covariant

1
推荐指数
1
解决办法
491
查看次数

标签 统计

covariant ×1

generics ×1

invariants ×1

scala ×1