Scala返回类型等于参数类型

Scala返回类型等于参数类型,scala,Scala,我想拥有下面描述的静态方法的功能(即,没有F-有界多态性),但到目前为止我还不能。我将非常感谢你的意见 假设我们有以下类层次结构: sealed trait A case class B(value: Int) extends A case class C(value: Int) extends A 如果我尝试执行以下操作,编译器会抱怨: def doSomething[T <: A](arg1: T, arg2: Any, ...): T = { arg1 match {

我想拥有下面描述的静态方法的功能(即,没有F-有界多态性),但到目前为止我还不能。我将非常感谢你的意见

假设我们有以下类层次结构:

sealed trait A
case class B(value: Int) extends A
case class C(value: Int) extends A
如果我尝试执行以下操作,编译器会抱怨:

def doSomething[T <: A](arg1: T, arg2: Any, ...): T = {
  arg1 match {
    case b: B => B(5)
    case c: C => C(5)
  }
}
def剂量计[TB(5)
案例c:c=>c(5)
}
}
有没有办法实现这一功能

谢谢

  • 不,使用这个类层次结构无法表达它


  • 对于
    def doSomething[T抱怨什么错误?B(5)和C(5)是唯一一个没有错误的强制转换或抛出异常的可能实现不符合返回类型T。但是如果我希望
    doSomething
    是静态的,我如何使用F-Bounded多态性实现这一点?静态是什么意思?Scala没有静态方法。我的意思是属于某个对象而不是类。
    trait Ops[T def doSomething(arg1:T,…):T}
    然后
    对象Bops扩展操作[B]
    不这样做,因为我们还需要
    T