java安卓如何从hashmap中获取整数值
HashMap<String,Integer>alert=( HashMap<String,Integer>) documentSnapshot.get("alert");
Log.e("alert",String.valueOf(alert));
Integer days=alert.get("days").intValue();
Integer hours=alert.get("hours").intValue();
Integer minutes=alert.get("minutes").intValue();
//这是我的日志
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at FirstFlowFragments.BookAppointmentFragment$2.onComplete(BookAppointmentFragment.java:234)
at com.google.安卓.gms.tasks.zzj.run(Unknown Source:23)
at 安卓.os.Handler.handleCallback(Handler.java:790)
at 安卓.os.Handler.dispatchMessage(Handler.java:99)
at 安卓.os.Looper.loop(Looper.java:171)
我正在从firebase数据库获取hashmap值,该值即将到来。当我尝试获取这些值时,hashmap中的值是整数,就像java一样。Long不能转换为整数
# 1 楼答案
您需要找出
dataSnapshot.getValue()
值的实际类型,并将其转换为正确的映射类型以避免此错误# 2 楼答案
如果数据库只包含不浮点或双精度的整数值,那么可以直接从
HashMap
的键中获取Integer
值。无需添加.intValue()
如果数据库中的值为
float
,则可以使用以下代码# 3 楼答案
获取长的值,然后将其转换为整数