当我检查StoredCredential的实例是否为null时
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仍然显示警告。
使用“!=”检查实例是否不为null时,将产生相同的错误。
下面的代码执行相同的操作,但不清楚的多:
if (!(storedCredential instanceof StoredCredential)) {
//do something
}
Netbeans对此表达式没有问题。
因为编译没有问题,所以我假设将包含类的.jar添加到库中的方式存在问题。这是我唯一遇到的问题,这个.jar中没有其他类给我这个问题。
最佳答案
我也遇到过这个问题。另外,在尝试将问题类的实例传递到接受对象作为参数的方法的地方,出现以下错误:
required: String,Object
found: String,SomeClass
reason: actual argument SomeClass cannot be converted to Object by method invocation conversion
原来,编译器无法确定我的类的正确类型。
我的类(class)(简称为com.blah.lib.SomeClass)在一个NB项目(简称为Project 1)中,并在第3方jar中扩展了一个类,该 jar 是Project 1的库。
另一个NB项目(我们称为Project 2)依赖于Project 1,并使用com.blah.lib.SomeClass,但其libs中没有第3方jar,因此在编译Project 2时,编译器无法确定完整的com.blah.lib.SomeClass的继承。
因此,解决方案是也将第3方jar添加到Project 2的库中。
我知道这已经有几年历史了,但是我认为我会发布这个答案,以防将来其他人使用Google搜索该问题。