【发布时间】:2020-01-20 05:07:31
【问题描述】:
我刚刚开始使用 kotlin,我在 java 中有一段代码,我必须将其转换为 kotlin。这是java代码:
public class NonSwipeableViewPager extends ViewPager
{
public NonSwipeableViewPager(Context context) {
super(context);
setMyScroller();
}
public NonSwipeableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
setMyScroller();
}
private void setMyScroller() {
//some code
}
}
如果这段代码中只有一个构造函数,我可以这样写:
class NonSwipeableViewPager(context: Context): ViewPager(context) {
init {
setMyScroller()
}
private fun setMyScroller() {
//some code
}
}
但是,由于有两个构造函数,并且每个构造函数都调用super() 方法,我不知道如何将这段代码转换为 kotlin。我最接近的是:
class NonSwipeableViewPager(context: Context): ViewPager(context) {
init {
setMyScroller()
}
constructor(context: Context?, attrs: AttributeSet?) : super(context!!, attrs) {
setMyScroller()
}
private fun setMyScroller() {
//some code
}
}
但是,在这段代码中,我在这一行 super(context!!, attrs) 中收到以下错误:
primary constructor call expected
那么,如何从二级构造函数调用super()?
【问题讨论】: