我有一個方法接受一個長的原始值並根據它做一些處理。它最初是int,後來改變了。實際調用此方法的代碼是使用Integer調用此方法,因爲前面的代碼是java Autoboxing and Unboxing。應該接受一個Integer對象的java方法接受一個Integer對象嗎?
但是,這已經改變爲長期後,我的代碼並沒有顯示任何編譯時錯誤,而建設如我所料。現在,如果我將其更改爲int而不是Integer,則會顯示編譯時錯誤,但不會顯示Integer。
這是怎麼發生的?
編輯:
class ABC {
public Customer customerExists(long cid) throws Exception {
...
}
}
class XYZ {
public void method() {
Integer customerId = null;
...
customerExists(customerId);
...
}
}
這應該是根據我的,但它不是一個編譯時錯誤。
Java版本 - OpenJDK的版本 「1.8.0_31」 OpenJDK的 運行時環境(建立1.8.0_31-B13) OpenJDK的64位服務器VM(建25.31-B07,混合模式)
您能否提供一個有問題的示例代碼???另外,如果您可以指定您的JDK版本,它將有所幫助...我無法重現此... – Codebender
您是否可以共享代碼例如,我們看到你的意思是什麼 – Mureinik
代碼請準確的編譯錯誤你所描述的內容不能發生! – Seelenvirtuose