這段代碼會拋出一個NullPointerException
,因爲它將其拆箱爲原始類型,並調用Long.longValue()
,對吧?取消裝箱Null對象長時間導致NullPointerException,罰款?
那甚至很容易看到,如果你有這樣一個片段:
long value = (Long) null;
但NullPointerException
更難更復雜的情況是這樣得到:
long propertyValue = (Long) obj.getProperty(propertyModel.getName());
就違反」 Java編譯器有沒有可能使這個更舒適的異常呢?我更喜歡IllegalArgumentException
,並帶有一條消息,如「你試圖將一個空對象轉換爲原始類型,這是不能完成的!」
這不是更合適嗎?你怎麼看?這在運行時甚至可能嗎?我們能夠確定這個演員嗎?我還沒有看過java字節碼。也許它可以用於解決方案。
這個問題可以回答:我想知道是否有可能實現這種行爲!
NPE似乎沒什麼問題。可空性註釋可能有所幫助。 (** **的Un拳,順便說一句。) – 2010-03-04 19:27:22