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

それが示す方法です..returnデバッグ中にelseステートメントのみが強調表示され、その前のステートメントは強調表示されないことに気付くかもしれません...実際には実行されません..elseログを使用してその状態で何かを印刷してみてください.

于 2012-04-05T07:59:20.070 に答える
2

コードとバイナリが同期していないだけだと思います。再コンパイルを試みると、もう表示されないはずです。

于 2012-04-05T08:00:48.877 に答える
1

あなたのコードから見ると、決して起こらない..

チェックmsg_dataインif statementnullである可能性があります。正しくデバッグすると、コードが同期していない可能性があります。だからもう一度ビルド..

編集:

それから他の部分を削除し、このコードを使用して、

コード:

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 に答える