如何将此Android Kotlin代码转换为Java代码

时间:2019-12-30 04:39:38

标签: java android kotlin android-recyclerview

class MainAdapter : RecyclerView.Adapter<MainAdapter.ViewHolder>() {

    var list: List<Int> = arrayListOf()
    var tracker: SelectionTracker<Long>? = null

    init {
        setHasStableIds(true)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val number = list[position]
        tracker?.let {
            holder.bind(number, it.isSelected(position.toLong()))
        }
    }

我想理解这个例子。 tracker?.let转换为什么?还有Java中的init等价物?

3 个答案:

答案 0 :(得分:1)

Java代码中的

MainAdapter等效项是这样的:

row1   | row2
_______________
400    |500

答案 1 :(得分:1)

如果您对Java很熟悉,我将建议另一种读取kotlin代码的方法。您可以在android studio中使用以下选项。

Decode kt file

在此之后,只需单击decompile and Voila !,您将获得Java代码。

byte code

所以现在您可以阅读任何kotlin代码。

答案 2 :(得分:0)

class M {
    var age: Int = 0
}
fun main(){
    val m = M()
    m.let {
        it.age = 11
     }
    println(m.age)
}

在输出“ 11”上方,因此“ let”不会复制接收方,“ it”只是指向接收方,具有副作用