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"
时,它仍然是相同的。为什么?
可能是因为“静态同步”还是其他什么?
答案 0 :(得分:2)
它的显示方式..你也可能会注意到在那个else语句中只有return
语句在调试时突出显示而不是之前的语句......它从未真正执行过..尝试在那里打印一些东西使用Log
else
条件
答案 1 :(得分:2)
我认为你的代码和二进制文件不同步。尝试重新编译,你不应该再看到它了。
答案 2 :(得分:1)
从你的代码看,它永远不会发生......
检查msg_data
中的if statement
可能是 null 。如果你正确调试它可能是你的代码不同步。所以再次建立..
修改强>
从中删除其他部分,使用此代码,
<强> CODE:强>
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;
}