如何检查数据是否为映射(键值对)?

时间:2019-01-27 11:41:18

标签: java android kotlin

在处理数据(来自Firebase的DataSnapshot)之前,我需要检查返回的数据在通过接口反序列化之前是否已正确格式化为Map。

看了网之后,我发现了这个用Kotlin编码的示例:

override fun deserialize(input: DataSnapshot): StockPrice {
    val data = input.value
    return if (data is Map<*, *>) {
        StockPrice(
            input.key!!,
            (data["price"] as Number).toFloat(),
            Date(data["time"] as Long),
            true
        )
    }
    else {
        throw Deserializer.DeserializerException("input.value wasn't a Map")
    }
}

如何在Android Studio和Java中实现这种行为?

1 个答案:

答案 0 :(得分:0)

使用此代码。

      StockPrice deserialize(DataSnapshot input){

                  if (input instanceof Map<>)
                   {
                // todo if input is a map<>
                   } else { 
                 //throw error or send message to user
            throw Deserializer.serializeException(" that is not a 
               map")
             }
  }

希望这对您有帮助