Я только что начал использовать 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()
из вторичный конструктор?