簡體   English   中英

是什么原因導致“二元運算符的錯誤操作數類型&#39;==&#39;”與第二類型 <nulltype> ?

[英]What causes “bad operand types for binary operator '==' ”with second type <nulltype>?

當我檢查StoredCredential的實例是否為空時

if(storedCredential != null){
  //do something
}

Netbeans 7.1顯示以下警告:

bad operand types for binary operator '=='
  first type:  com.blah.dbcore.mypublic.beans.StoredCredential
  second type: <nulltype>

它正確編譯並且不拋出RuntimeExceptions,但Netbeans仍然顯示警告。 使用'!='檢查實例是否為空,會給出相同的錯誤。

以下代碼執行相同的操作,但不太清楚:

if (!(storedCredential instanceof StoredCredential)) {
  //do something
}

Netbeans對這個表達沒有任何問題。

因為編譯沒有問題,我假設我將包含類的.jar添加到庫中的方式有​​問題。 這是我對這個jar的唯一問題,但是這個.jar中沒有其他類給我這個問題。

我也遇到過這個問題。 此外,我試圖將問題類的實例傳遞給接受Object作為參數的方法,我得到以下錯誤:

required: String,Object
found: String,SomeClass
reason: actual argument SomeClass cannot be converted to Object by method invocation conversion

原來,編譯器無法確定我的類的正確類型。

我的類(我們稱之為com.blah.lib.SomeClass)在一個NB項目中(我們稱之為Project 1)並在第三方jar中擴展了一個類,這是一個Project 1的庫。

另一個NB項目(我們稱之為Project 2)依賴於Project 1並使用了com.blah.lib.SomeClass,但是在其libs中沒有第三方jar,因此在編譯Project 2時,編譯器無法確定完整com.blah.lib.SomeClass的繼承。

所以解決方案是將第三方jar添加到Project 2的庫中。

我知道這已經有好幾年了,但我想我會發布這個答案,以防萬一它可以幫助其他人將來搜索這個問題。

Netbeans告訴你,在程序的那一點, storedCredential可能不是null。 這可能意味着您已經在該方法中先前調用了一個方法或訪問了storedCredential上的數據成員。

暫無
暫無

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

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