【问题标题】:How to extract HashMap from Bundle without cast?如何在不强制转换的情况下从 Bundle 中提取 HashMap?
【发布时间】:2012-07-13 23:33:34
【问题描述】:

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

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

感谢任何指针! 马库斯

【问题讨论】:

    标签: android casting hashmap bundle


    【解决方案1】:

    所以用你的方法

    getSerializable("data");
    

    没有强制转换就无法做到这一点,因为getSerializable 方法总是返回Serializable 实例。

    如果不进行强制转换,您可以使用返回 TgetParcelableExtra,但我对您的应用程序上下文一无所知,所以我不确定是否可以使用。

    【讨论】:

    • 那么,做演员还是寻求其他解决方案?
    • 如果工作正常,没有理由使用其他解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2020-08-08
    • 2014-09-27
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多