簡體   English   中英

Java布爾參數無需任何分配即可更改其值

[英]Java boolean parameter changes its value w/o any assignment

今天我有一個非常尷尬的經歷。 我只是這樣調用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!

我不知道發生了什么 請解釋為什么生產價值變為假。

提前致謝。

如果你打電話

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

那么在方法調用中production將為假。

如果此值為常數,為什么要將其作為參數傳遞? 如果您無法刪除它,建議您使用其他名稱,例如Use Java Code Convention。

private static final boolean PRODUCTION = true;

實際上,您在調試模塊中看到的“生產”變量是方法“ Push.payload()”的參數。 如果靜態變量的名稱與方法中參數的名稱相同。 jvm將其作為方法優先級的參數。 因此,我建議您使用“ PRODUCTION”之類的大寫字母。 並且您最好使用Xxxxx.PRODUCTION這種樣式更適合閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM