這是我的代碼:爲什麼IntelliJ告訴我在這種情況下引用不能爲空?
private void foo(Bar bar) {
Session session = null;
Class entityClazz = null;
try {
entityClazz = Hibernate.getClass(bar);
if (bar != null) {
和IntelliJ會提醒我的最後一條語句以上消息:
條件「吧!= NULL」始終是「真」。此檢查 分析方法控制和數據流,以報告始終爲真或假的可能條件 ,靜態值爲 的表達式被證明是恆定的,並且可能導致違反合同的可空性 。
當我刪除聲明:
entityClazz = Hibernate.getClass(bar);
警告將會消失。
在IntelliJ的腦海裏發生了什麼事,什麼是阻止酒吧爲空?
我猜,因爲'Hibernate.getClass(巴)'將拋出一個NullPointerException如果'bar'爲空,因此如果'在這種情況下永遠不會達到。 –
@a_horse_with_no_name我沒有看到代碼中出現任何NPE,但可能我錯過了它。 –
檢查'Hibernate.getClass'是否在其參數中有'@NotNull'。 –