kotlin中申明MZBannerView。必须带范型吗?MZBannerView<BannerBean>这样声明后出现报错
kotlin中 声明var bannerView: MZBannerView<BannerBean>?=null 然后调用bannerView .setDelayedTime()不支持,报错Error:(61, 9) Smart cast to 'MZBannerView<BannerBean>!' is impossible, because 'bannerView' is a mutable property that could have been changed by this time 我用Java写的时候可以不带范型,但是kotlin必须带才不报错,然后这样调用setDelayedTime方法就会报错
Out-projected type 'MZBannerView<>!' prohibits the use of 'public open fun setPages(datas: (Mutable)List<T!>!, mzHolderCreator: MZHolderCreator<(raw) MZViewHolder<>!>!): Unit defined in com.zhouwei.mzbanner.MZBannerView'
我使用kotlin报了这样的错,可以帮忙解决一下吗
(rootBinding.banner as MZBannerView<List<Royalty>>).setPages(newList) { ViewPagerHolder() } @clbDream
private lateinit var mMZBanner: MZBannerView<HomePagerContent.DataBean> mMZBanner = headerView.findViewById(R.id.banner)
mMZBanner.setPages(
dataBean,
MZHolderCreator<BannerViewHolder> { BannerViewHolder() })
mMZBanner.start()
override fun onPause() { super.onPause() if (::mMZBanner.isInitialized) { mMZBanner.pause() } }
override fun onResume() {
super.onResume()
if (::mMZBanner.isInitialized) {
mMZBanner.start()
}
}