Дженерики и абстрактный класс в Котлине

У меня есть базовый абстрактный класс:

abstract class BaseFragment<T : BasePresenter> : Fragment(){ protected var presenter : T? = null abstract fun providePresenter() : T abstract fun getLayoutId() : Int abstract fun onCreate() override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val root = inflater?.inflate(getLayoutId(), container, false) presenter = providePresenter() return root } override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { onCreate() } } 

Мой код в JAVA:

 //JAVA private ArrayList<BaseFragment> fragments; 

Как я могу использовать его Котлин? Следующий код не работает

 //Kotlin val tabs = ArrayList<BaseFragment>() //error: One type argument expected for class BaseFragment<T : BasePresenter> : Fragment 

Вам нужно указать тип для вашего T

 val tabs = ArrayList<BaseFragment<SomePresenterType>>()