0
private static synchronized String[][] map2data(Map<String, Object> map) {
    if (map != null) {
        String[][] msg_data = (String[][]) map.get("message_data");
        return msg_data;
    } else {
        return null;
    }
}

我的android项目的java代码如下。当我在eclipse中调试它时,String[][] msg_data = (String[][]) map.get("message_data");执行后,它会进入return null; 案例else

我对此完全感到困惑。首先,我猜 是 有问题String[][] msg_data = (String[][]) map.get("message_data");,但是当我将其更改为 时String a = "a",它仍然是一样的。为什么?可能是因为“静态同步”还是其他原因?

4

3 回答 3

2

它显示的方式..您可能还注意到,在 else 语句中,只有return语句在调试时突出显示,而不是之前的语句...它从未真正执行过..尝试else使用 Log 在该条件下打印一些东西

于 2012-04-05T07:59:20.070 回答
2

我认为您的代码和二进制文件不同步。尝试重新编译,您应该不会再看到它了。

于 2012-04-05T08:00:48.877 回答
1

从你的代码看它永远不会发生..

msg_dataif statement可能是它的null。如果您正确调试它,可能是您的代码不同步。所以再建一次..

编辑:

从中删除 else 部分,使用此代码,

代码:

private static synchronized String[][] map2data(Map<String, Object> map) {
String[][] msg_data = null;
    if (map != null) {
        msg_data = (String[][]) map.get("message_data");
       } 
return msg_data;
}
于 2012-04-05T08:00:43.673 回答