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() 时,生产价值是真实的,除了它的声明之外没有任何赋值。

private static final boolean production = true;

当然,我在调试模式下进入 Push.payload() 之前检查了它的值是否为真。但是,在 Push.payload() 方法中,生产值变为 false !

我不知道发生了什么。请解释为什么生产值更改为假。

提前致谢。

4

2 回答 2

3

如果你打电话

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

那么在production方法调用中将是错误的。

如果这个值是一个常数,你为什么将它作为参数传递?如果您不能删除它,我建议给它一个不同的名称,例如使用 Java 代码约定。

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

您在调试模块中看到的“生产”变量实际上是方法“Push.payload()”的参数。如果静态变量的名称与方法中的参数名称相同。jvm优先将其作为方法的参数。因此,我建议您使用大写字母,例如“PRODUCTION”。你最好使用 Xxxxx.PRODUCTION 这种风格更适合阅读。

于 2012-08-22T09:46:40.973 回答