例如,有两个名为A和B的scala类。
class A{
val aVariable:String="a"
}
class B(val newVariable:String) extends A{
def newMethod(): Unit ={
}
}
问题是如何使用A对象用其变量实例化B对象? 例如,函数采用A对象和字符串来创建B对象
val bObject:B=BuildFunc(new A(),"string")
如果A包含很多变量,有没有办法避免手动设置每个变量?
在Java中似乎可以通过像super(aObject)
之类的代码来完成,Scala中是否有等效的方法?
答案 0 :(得分:0)
这里有多种解决方案。例如,可以定义A将A的构造函数参数提升为字段:
class A(val foo: String)
class B(override val foo: String, val baz: String) extends A(foo)
如果你不能改变A的定义,那么这可能会有所帮助:
class A {
val foo: String = "foo"
}
class B(override val foo: String, val baz: String) extends A
希望有所帮助。