是什么导致"二元运算符的错误操作数类型'=='"与第二类<nulltype>?

Mat*_*cro 5 java netbeans

当我检查StoredCredential的实例是否为空时

if(storedCredential != null){
  //do something
}
Run Code Online (Sandbox Code Playgroud)

Netbeans 7.1显示以下警告:

bad operand types for binary operator '=='
  first type:  com.blah.dbcore.mypublic.beans.StoredCredential
  second type: <nulltype>
Run Code Online (Sandbox Code Playgroud)

它正确编译并且不抛出RuntimeExceptions,但Netbeans仍然显示警告.使用'!='检查实例是否为空,会给出相同的错误.

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

if (!(storedCredential instanceof StoredCredential)) {
  //do something
}
Run Code Online (Sandbox Code Playgroud)

Netbeans对这个表达没有任何问题.

因为编译没有问题,我假设我将包含类的.jar添加到库中的方式有​​问题.这是我对这个jar的唯一问题,但是这个.jar中没有其他类给我这个问题.

meg*_*lop 1

我也遇到过这个问题。另外,当我尝试将问题类的实例传递到接受对象作为参数的方法时,出现以下错误:

required: String,Object
found: String,SomeClass
reason: actual argument SomeClass cannot be converted to Object by method invocation conversion
Run Code Online (Sandbox Code Playgroud)

结果编译器无法确定我的类的正确类型。

我的类(我们称之为 com.blah.lib.SomeClass)位于一个 NB 项目(我们称之为项目 1)中,并在第 3 方 jar 中扩展了一个类,该类是项目 1 的库。

另一个NB项目(我们称之为项目2)依赖于项目1并使用了com.blah.lib.SomeClass,但其库中没有第3方jar,因此在编译项目2时,编译器无法确定完整的com.blah.lib.SomeClass 的继承。

因此,解决方案是将第 3 方 jar 添加到项目 2 的库中。

我知道这已经有很多年了,但我想我应该发布这个答案,以防它帮助其他人将来谷歌搜索这个问题。