У меня есть простой вопрос, но я не могу найти ответ нигде.Scala - пользовательские конструкторы классов
У меня есть следующий код java. FrameLayout является андроидом класса, который имеет 2 конструкторов:
public class FrameLayout {
public FrameLayout(Context context){ //do something
}
public FrameLayout(Context context, AttributeSet attrs){ //do something
}
....
}
public class ClassA extends FrameLayout{
public ClassA(Context c){
super(c);
callSomeInitMethod();
}
public ClassA(Context a, AttributeSet b){
super(a,b);
callSomeInitMethod();
}
}
У меня есть следующий код SCALA, но это не то же самое, как конструктор по умолчанию не называет «callSomeInitMethod()»:
abstract class BaseComponent(context : Context, attrs : AttributeSet)
extends FrameLayout(context, attrs) {
def this(context : Context) = {
this(context, null)
callSomeInitMethod()
}
Как это реализовать в Scala ?. Благодаря!.
Существует часть вашего примера, который не может быть сделан в Scala: два конструктора, призывающих различные конструктор родительского класса. В Scala только основной конструктор когда-либо называет конструктор родительского класса, и все вторичные конструкторы могут вызывать только первичный конструктор. –
Он, вероятно, уже знает это, учитывая, что в своем преобразовании scala он явно передает null в главный конструктор вместо вызова другого базового конструктора. –