2016-04-06 3 views
0

Когда я ленивый инициализирую вектор. Я мог бы сделать это для обычного класса Object, как показано ниже.Kotlin: Как ленивая инициализация вектора

val mPagerAdapter: PagerAdapter by lazy { 
    PagerAdapter(supportFragmentManager, fragments, mTabsName) 
} 

Однако, когда я ленивый инициализирует векторную переменную, как показано ниже

val fragments = Vector<Fragment>() by lazy { 
    Vector<Fragment>() 
} 

Это дало мне ошибку о том, Unresolve Reference: by. Как исправить эту проблему, которую я мог бы ленив инициализировать?

+0

во второй отрезала синтаксис является неправильным. Сообщение может быть, вероятно, более информативным, например, «присвоение собственности конфликтует с делом собственности» – voddan

+0

Согласен. Сообщение об ошибке не является интуитивным. Благодарю. – Elye

ответ

3

В вашем втором случае синтаксис заметно отличается от первого фрагмента (вы инициализировать переменную перед by), сравните:

val fragments by lazy { Vector<Fragment>() } 
+0

Спасибо! для первого я просто понимаю, что могу упростить «val mPagerAdapter» lazy { PagerAdapter (supportFragmentManager, фрагменты, mTabsName) } ' – Elye

Смежные вопросы