2017-03-04 12 views
7

Koltin’e yeni geldim ve gerçekten çok seviyorum, ama bir takıma çarptım. Eminim ki son derece basit bir şey eksik, ama yine de, ben bir kaybım ve herhangi bir yardım için minnettarım.Kotlin Android Studio/IntelliJ "Ödevle birleştirilebilir" Denetim Uyarıları

Android Studio/IntelliJ komutunu kullanarak basit bir java sınıfını Kotlin'e dönüştürdüm. Bu dönüşümden sonra, nasıl çözüleceğinden emin olamadığım bir denetim uyarısı alıyorum. Bu sınıftan önce 15-20 sınıflarını (çok daha karmaşık olan) Kotlin'e dönüştürmüştüm ve bu uyarıyı henüz görmedim.

enter image description here

Yine, bu gerçekten temel bir şey olduğunu biliyorum. Ama ben Kotlin dokümanlarından değişkenler ve sınıflar üzerine döktüm ve 'atama' ile ilgili bir şey bulamadım ya da bir kerede birden çok değişken başlatamadım. Belki de mesajdaki şartları anlamıyorum? Ayrıca tam ileti dizesini ("Can be joined with assignment") hiçbir şekilde kullanmamayı denedim.

ImagePagerAdapter.kt önceden

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 
    } 
} 

çok teşekkür ederiz!

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

bağlantılardan kurtulmak edilmelidir:

cevap

14

yerine ayrı init bloğu sahip, sen, sen sınıfta bunları deklare ettik yerde değişkenleri başlatılıyor olabilir şöyle olduğunu söylüyor uyarı yerde Alt+Enter niyet eylem böyle, sizin için bu yeniden yazma yapmak:

Join declaration and assignment intention action

Ayrıca, bu formda, biraz LIK türlerini temizleyebileceğimizden e bu:

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

Teşekkür ederiz! Mantıklı. Garip bir şekilde, "Alt + Enter" a geçene kadar "Harekete geçme bildirimi ve atama" eylemini görmedim. Belki bu bir böcek mi? Her neyse, bu çözüldüğüne sevindim. Tip bildirimlerini nasıl temizleyeceğiniz konusunda geri bildiriminiz için teşekkür ederiz. Hızlı öğrenme :) – madcow