0
我有一個簡單的問題,但無法找到答案的任何地方。斯卡拉 - 自定義類的構造函數
我有以下的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中,只有主構造函數調用父類構造函數,而所有次構造函數只能調用主構造函數。 – 2013-03-07 19:41:49
他/她可能已經知道這一點,因爲在他的scala轉換中,他明確地將null傳遞給主構造函數,而不是調用不同的基構造函數。 – 2013-03-07 21:20:54