小编nac*_*111的帖子

Kotlin 中的一个大问题是不能像 Apple 中的 swift 那样动态转换。我能怎么做?

我有一个 firebase 实时数据库,具有以下简单的方案:

  • 行政
    • 价格1:5

如果我在 kotlin 中获取数据库:

val result = it.value as MutableMap<String, Any>
Run Code Online (Sandbox Code Playgroud)

当我尝试获取价格1时

var price1 = result["price1"] as Long
price1 = price1 + 1
Run Code Online (Sandbox Code Playgroud)

(PRICE1 可以是 Double 或 Int)问题是,如果价格 1 是 5.5,显然应用程序会被杀死,但如果价格 1 是 5,则完美运行。

迅速地,我每次都输入 Double 并且它永远不会出现问题

我发现必须检查它是双精度数还是不带逗号的整数才能进行求和有点愚蠢

// im doing this at the moment
var price1 = result["price1"].toString()
if (price1.contains(".")){
     println(price1.toDouble() + 1)
}else{
     println(price1.toInt() + 1)
}
Run Code Online (Sandbox Code Playgroud)

还有其他简单的方法吗?感谢大家

android kotlin firebase-realtime-database

1
推荐指数
1
解决办法
337
查看次数