【发布时间】:2014-07-03 22:21:01
【问题描述】:
如果我在 Scala 中有一个基类,例如:
class Base(a: Int, b: Int, c: Int, d: Int, e: Int, f: Int = 1, g: Int = 2) {}
我希望从这个基类继承多个类,但我想在该列表中添加参数。有没有一种有效的方法来做到这一点,而不需要携带大量的基类参数列表?
为了让事情变得更复杂,基类可能会也可能不会重新定义可选参数(f 和 g)。假设:
class Child1(f: Int, h: Int, i: Int) extends Base(a,b,c,d,e,f)
当然是这样的
new Child1(a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9)
在 Scala 中有没有好的方法来做到这一点? (我考虑通过定义参数的每个构造函数传递一个映射,但是没有编译时检查是否存在所需参数,它依赖于开发人员检查文档以查看它们应该包含的内容。如果键拼写错误怎么办?等等……)
【问题讨论】:
标签: scala inheritance parameter-passing multiple-inheritance optional-parameters