今天我有一个非常尴尬的经历。 我刚刚调用了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()步骤之前检查了它的值是否为真。但是,在Push.payload()方法中,生产值变为false !!
我不知道发生了什么。请解释为什么生产值变为false。
提前致谢。
答案 0 :(得分:3)
如果你打电话
Push.payload(payload, keystore, password, false, token);
然后production
在方法调用中将为false。
如果此值是常量,为什么要将其作为参数传递?如果你不能删除它我建议给它一个不同的名称,例如使用Java Code Convention。
private static final boolean PRODUCTION = true;
答案 1 :(得分:0)
您在调试模块中看到的“生产”变量实际上是方法“Push.payload()”的参数。
如果静态变量的名称与方法中的参数名称相同。 jvm将其视为优先级方法的参数。
所以,我建议您使用像“PRODUCTION”这样的大写字母。你最好用
Xxxxx.PRODUCTION
这种风格更适合阅读。