我在构造函数上使用 Scala 2.8 默认参数,并且出于 Java 兼容性原因,我想要一个使用默认参数的无参数构造函数。
由于非常合理的原因,这不起作用:
class MyClass(field1: String = "foo", field2: String = "bar") {
def this() = {
this() // <-- Does not compile, but how do I not duplicate the defaults?
}
}
我想知道我是否缺少任何东西。有不需要复制参数默认值的想法吗?
Thanks!
我真的不推荐它,但你可以通过向构造函数添加另一个参数来实现:
class MyClass(a: String = "foo", b: String = "bar", u: Unit = ()) {
def this() { this(u = ()) }
}
Unit
是一个不错的选择,因为无论如何您只能将一个东西传递给它,因此显式传递默认值不允许出现任何错误的可能性,但它可以让您调用正确的构造函数。
如果你愿意复制one对于默认值,您可以使用相同的策略,除了覆盖所选的默认值而不是添加单位参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)