Kotlin Android Studio / IntelliJ“可以与任务一起加入”检查警告

时间:2017-03-04 19:28:05

标签: android android-studio intellij-idea kotlin

我是Koltin的新手并且到目前为止真的非常喜欢它,但我遇到了麻烦。我确信我在这里遗漏了一些非常基本的东西,但是,我很遗憾,我很感激任何帮助。

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

enter image description here

同样,我知道这必须是非常基本的东西。但是我通过关于变量和类的Kotlin文档,并且找不到与“赋值”或一次初始化多个变量相关的任何内容。也许我不理解信息中的条款?我也用Google搜索确切的消息字符串("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
    }
}

非常感谢提前!

1 个答案:

答案 0 :(得分:32)

它告诉您,您可以在类中声明它们的位置初始化变量而不是单独的init块,如下所示:

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

你应该在警告的地方获得Alt+Enter意图行动,为你做这个重写,如下:

PHP: date

此外,在这种形式下,你可以像这样清理类型:

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