0

今日、私はとても恥ずかしい経験をしました。このように Push.payload() メソッドを呼び出しました。

Push.payload(payload, keystore, password, production, token);

(実際、このコード スニペットは javaPNS の一部です) そして、Push.payload() は

public static PushedNotifications payload(Payload payload, Object keystore, String password, boolean production, Object devices) throws CommunicationException, KeystoreException {
    return sendPayload(payload, keystore, password, production, devices);
}

Push.payload() を呼び出したときに生成値が true であり、その宣言以外に代入はありません。

private static final boolean production = true;

もちろん、デバッグモードで Push.payload() を実行する前に、その値が true であることを確認しました。ただし、 Push.payload() メソッドでは、プロダクション値が false になります!!

何が起こったのかわかりません。生産値が false に変わった理由を説明してください。

前もって感謝します。

4

2 に答える 2

3

電話すれば

Push.payload(payload, keystore, password, false, token);

productionメソッド呼び出し内では false になります。

この値が定数の場合、なぜパラメーターとして渡すのですか? 削除できない場合は、Java コード規則を使用するなど、別の名前を付けることをお勧めします。

private static final boolean PRODUCTION = true;
于 2012-08-22T09:18:40.803 に答える
0

Debug Module に表示される "production" 変数は、実際にはメソッド "Push.payload()" のパラメーターです。静的変数の名前がメソッドのパラメーターの名前と同じ場合。jvm は優先的にメソッドのパラメータと見なします。ですから、'PRODUCTION' のように大文字を使用することをお勧めします。このスタイルを使用 Xxxxx.PRODUCTION したほうが読みやすいです。

于 2012-08-22T09:46:40.973 に答える