我继承了一个较旧的Kotlin代码库,并尝试使用最新的编译器编译有很多问题 . 我无法搞清楚的是这些奇怪的功能在课堂中间悬挂,没有任何明显的呼唤 . 我想知道是否有人知道这曾经是什么,以及在较新版本的Kotlin中它被取代了什么?
public class SomeAdapter(val friends: SomeAdapterProvider, val listener: OnItemClickedListener) : RecyclerView.Adapter<SomeAdapter.ViewHolder>() {
trait OnItemClickedListener {
fun onItemClicked(f: Friendship)
}
private inner class ViewHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener {
override fun onClick(v: View) {
listener.onItemClicked(somethings[getPosition()])
}
val text: TextView by inject(android.R.id.text1)
val image: Picture by inject(R.id.imageview);
{
itemView setOnClickListener this
}
}
{
setHasStableIds(true)
}
}
具体来说,有问题的行是 itemView setOnClickListener this
和 setHasStableIds(true)
,两个中间的大括号都悬空了 .
2 回答
正如@Andrey在对该问题的评论中所指出的,以及来自@ D3xter的答案(将
init
添加到initialization blocks),这里是更新的代码(供参考):使用"init"为这两个功能块添加前缀,请参阅Prefixes For Initializer Blocks