android - 如何从Bundle中提取HashMap而不进行强制转换?

标签 android casting hashmap bundle

在两个线程之间进行通信,我使用消息来传输数据。就我而言,是一个 HashMap。现在,在重建数据时,我收到有关未经检查的类型转换的警告。这对我(作为 java noob)来说意味着我根本不应该这样做,对吗?但是从 bundle 中获取 HashMap 的正确方法是什么?

    Bundle dataBundle = msg.getData();
Serializable result = dataBundle.getSerializable("data");
HashMap<String,String> output = (HashMap<String, String>) result;

感谢任何指点! 马库斯

最佳答案

所以按照你的方法

getSerializable("data");

如果不进行强制转换,就无法做到这一点,因为 getSerialized 方法始终返回 Serialized 实例。

如果不进行强制转换,您可以使用返回 TgetParcelableExtra ,但我知道有关您的应用程序上下文的任何信息,因此我不确定是否可以使用。

关于android - 如何从Bundle中提取HashMap而不进行强制转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11481962/

相关文章:

c++ - 理解 char * 到 int * 的转换及其含义

SQL Server 日期时间转换问题

c++ - 根据字符串选择成员函数

java - Selenium Hashmap(String, WebElement) 传递 String 时不返回 WebElement

Java HashMap 分配的大小

android - 您如何强制嵌入式音频文件在Android Tablet上自动启动?

android - 混淆理解类/对象 :D

scala - 为什么asInstanceOf不发起隐式转换?

Android 相对布局 : ToLeftOf gone view

android - AndEngine:PIXEL_TO_METER_RATIO的使用