2016-07-26 64 views
2

我有这段代码。它将与代表findViewById我可以推断代表中属性的类型吗?

val backgroundImage: ImageView by lazy { view<ImageView>(R.id.item_component_section_background) } 

fun <T: View> view(id : Int) : T { 
    val view : View = findViewById(id) ?: throw IllegalArgumentException("Given ID could not be found in current layout!") 

    @Suppress("UNCHECKED_CAST") 
    return view as T 
} 

有什么办法去除view<ImageView>在慵懒块类似view?我能得到或推断函数view()中的属性类型吗?

回答

5

你可以有

val backgroundImage by lazy { view<ImageView>(R.id.imageView) } 

val backgroundImage by lazy<ImageView> { view(R.id.imageView) } 

注意,在这两种情况下backgroundImage类型是从右侧表达式类型推断。

+0

这不是我想的,但它是我想要的结果!像那样,我不需要两次写这个类型。 –

相关问题