2017-03-04 133 views
7

我是新来的Koltin,到目前为止真的很喜欢它,但我碰到了一个障碍。我确信我错过了一些非常基本的东西,但是,尽管如此,我是一个亏损,我很感激任何帮助。Kotlin Android Studio/IntelliJ“可以加入任务”检查警告

我使用Android Studio/IntelliJ命令将简单的java类转换为Kotlin。转换完成后,我收到检测警告,我不确定如何解决。在本课之前,我已经将15-20班(其中许多更复杂)转换为Kotlin,并且还没有看到这个警告。

enter image description here

同样,我知道这一定是一些真正基础。但是我倾注了Kotlin文档中的变量和类,找不到与“赋值”相关的任何内容或一次初始化多个变量。也许我不理解邮件中的条款?我也搜索了确切的消息字符串("Can be joined with assignment")无济于事。

ImagePagerAdapter.kt

abstract class ImagePagerAdapter(protected var context: Context) : PagerAdapter() { 
    protected var inflater: LayoutInflater 
    protected var images: List<Uri> 

    interface ImageLoadingListener { 
     fun onLoadingComplete() 
     fun onLoadingStarted() 
    } 

    init { 
     this.inflater = LayoutInflater.from(context) 
     this.images = emptyList() 
    } 

    override fun getCount(): Int { 
     return images.size 
    } 

    override fun isViewFromObject(view: View, `object`: Any): Boolean { 
     return view === `object` 
    } 

    override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) { 
     container.removeView(`object` as View) 
    } 

    fun bindImages(images: List<Uri>) { 
     this.images = images 
    } 
} 

许多在此先感谢!

回答

14

它告诉你,而不是有一个单独的init块,你可能会被初始化的地方,你已经声明他们在类中的变量,就像这样:

protected var inflater: LayoutInflater = LayoutInflater.from(context) 
protected var images: List<Uri> = emptyList() 

你应该得到的在警告的地方Alt+Enter打算采取行动,这样做重写你,就像这样:

Join declaration and assignment intention action

此外,在这种形式下,你可以清理的类型了一下LIK e此:

protected var inflater = LayoutInflater.from(context) 
protected var images = emptyList<Uri>() 
+1

谢谢!说得通。奇怪的是,我没有看到“加入声明和分配”意图行动,直到我点击“Alt + Enter”手动拉起操作菜单。也许这是一个错误?无论如何,很高兴这已经解决了。感谢您提供关于如何清理类型声明的反馈。快速学习:) – madcow