我需要一些关于这种情况的帮助:
trait使用某些方法定义共享接口。 其中一种方法应该是这样的
def fromConfig( config : Config):
每个实现应该使用类似的方法覆盖方法:
override def fromConfig(config: SubConfigA)
然而,这样做会给出“方法......无法覆盖”错误 即使配置内容定义为
abstract class Config
trait SubConfigA extends Config
trait SubConfigB extends Config
....
我记得,在Java中你实际上可以将接口定义为参数, 并使用子类中的子接口进行细化。
显然同样在Scala中不起作用。
上面的代码只是一个草稿,但这个想法正在传递 与特定实现匹配的特定配置 共享接口。
任何想法或建议都会受到最高的赞赏。
谢谢
答案 0 :(得分:1)
这是你想要的吗?
abstract class Config
trait ConfigA extends Config
trait ConfigB extends Config
trait FromConfigLoader[C <: Config] {
def fromConfig(config: C)
}
class TestA extends FromConfigLoader[ConfigA] {
def fromConfig(config: ConfigA) = ???
}
class TestB extends FromConfigLoader[ConfigB] {
def fromConfig(config: ConfigB) = ???
}