1

在用 Kotlin 编写的 Android 应用中,ViewMoel 中的 LiveData 属性可以使用支持字段技术进行封装,如下所示:

private val _score = MutableLiveData<Int>()
val score: LiveData<Int>
    get() = _score

如何在 Java 中翻译它以获得相同级别的封装?

4

2 回答 2

2

这是一个普通的getter方法,这是转换后的java代码

private final MutableLiveData<Integer> _score = new MutableLiveData<Integer>();

@NotNull
public final LiveData<Integer> getScore() {
    return this._score;
}

这是获取Java代码表单kotlin的步骤

在安卓工作室

工具 -> kotlin -> 显示 kotlin 字节码 -> 反编译

于 2020-12-12T10:49:10.000 回答
2

在Java中,类只有字段和函数,所以你可以用这样的getter创建一个私有字段来实现结果。

private final MutableLiveData<Int> score = new MutableLiveData<>();

public final LiveData<Int> getScore(){
    return score;
}
于 2020-12-12T10:52:38.600 回答