8
可能重複:
Booleans, conditional operators and autoboxing
Java, Google Collections Library; problem with AbstractIterator?Java的自動裝箱/拆箱wierdness
下面的代碼產生NPE:
Integer test = null;
Integer test2 = true ? test : 0;
System.out.println(test2);
要正確打印出「空「沒有例外要求這個代碼:
Integer test = null;
Integer test2 = true ? test : (Integer)0;
System.out.println(test2);
很明顯在第一個實例爲「測試」被拆箱(轉換爲本地INT),但是爲什麼呢?爲什麼在三元運算符中更改其他表達式(如第二個示例中所述)?任何人都可以提供某種形式的敘述,包括何時,什麼以及爲什麼這兩個例子中的東西都被裝箱和拆箱?
請參閱http://www.mail-archive.com/[email protected]/msg32723.html – Adam 2010-10-28 17:52:49
或者[Java,Google Collections Library; AbstractIterator的問題? ](http://stackoverflow.com/questions/1821510/java-google-collections-library-problem-with-abstractiterator),具體關於'int'。 – 2010-10-28 17:53:59
對於這個特定的例子,仍然沒有人回答何時裝箱和自動裝箱的順序。 – GreenieMeanie 2010-10-28 18:06:28