Scala 动态设置函数文本的参数类型

Scala 动态设置函数文本的参数类型,scala,Scala,假设我有这样的东西: abstract class MyContainer[E] abstract class MyClass[T] { def myFunction: Unit = { (myParam: MyContainer[T]) => Empty } } 现在,假设我为以下内容创建实现: class StringContainer[String] extends MyContainer[String] class StringClass extends My

假设我有这样的东西:

abstract class MyContainer[E]

abstract class MyClass[T] {
  def myFunction: Unit = {
    (myParam: MyContainer[T]) => Empty
  }
}
现在,假设我为以下内容创建实现:

class StringContainer[String] extends MyContainer[String]

class StringClass extends MyClass[String] 
是否有任何方法可以动态修改myParameter的类型而不重写myFunction,以便myFunction在运行时能以以下方式有效运行

abstract class StringClass[String] {
  def myFunction: Unit = {
    (myParam: StringContainer) => Empty
  }
}

发布这个问题后不久,我意识到我完全误解了在Scala中正确使用泛型。我在这里发布了一个工作示例,旨在帮助可能遇到相同错误的其他人:

abstract class MyContainer[E]

abstract class MyClass[T, C <: MyContainer[T]] {
  def myFunction: Unit = {
    (myParam: C) => Empty
  }
}
class StringContainer[String] extends MyContainer[String]

class StringClass extends MyClass[String, StringContainer]