pvo*_*orb 1 scala type-parameter
我有以下类型
class Translator[To <: Language] { ... }
abstract class Language
object English extends Language
object German extends Language
Run Code Online (Sandbox Code Playgroud)
有没有办法Translator从val类型English或German?的实例化?
我正在寻找类似以下内容(这不起作用):
val lang = if (someCondition) English else German
val translator = new Translator[classOf[lang]]
Run Code Online (Sandbox Code Playgroud)
问题是,无论English或者German是类.你确定你需要通用性吗?也许成分就足够了.可能的解决方案是:
val lang = Translator(if (someCondition) English else German)
Run Code Online (Sandbox Code Playgroud)
使用以下类和对象:
case class Translator(l: Language)
trait Language
object English extends Language
object German extends Language
Run Code Online (Sandbox Code Playgroud)
但它与你期望的设计完全不同......