if (countryCodeValue == "de"){
    val geocoder = Geocoder(this, Locale.GERMAN)
}else{
    val geocoder = Geocoder(this, Locale.ENGLISH)
}



try {
    val addresses = geocoder...


geocoder显示Unresolved reference但为什么?

我真的需要它是这种方式,尤其是在其他一些情况下,否则变通办法会由于某些原因而消耗更多的处理能力

最佳答案

因为您是在语句的每个分支内声明它,这意味着它仅在该分支本地。仅仅因为它们具有相同的名称并不能使它们成为相同的变量。

用这个:

val geocoder = if (countryCodeValue == "de") {
    Geocoder(this, Locale.GERMAN)
} else {
    Geocoder(this, Locale.ENGLISH)
}


Kotlin的if-else表达式也是语句,这意味着您可以使用它们设置变量。

关于java - Android Kotlin-在else条件下声明val,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52450005/

10-12 03:27