当我检查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中没有其他类给我这个问题。
答案 0 :(得分:2)
我也遇到过这个问题。此外,我试图将问题类的实例传递给接受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中扩展了一个类,这是一个项目1的图书馆。
另一个NB项目(让我们称之为项目2)依赖于项目1并使用了com.blah.lib.SomeClass,但是在其库中没有第三方jar,所以在编译Project 2时,编译器无法确定com.blah.lib.SomeClass的完整继承。
所以解决方案是将第三方jar添加到Project 2的库中。
我知道这已经有好几年了,但我想我会发布这个答案,以防其他人在将来搜索这个问题。
答案 1 :(得分:0)
Netbeans告诉你,在程序的那一点上,storedCredential
不可能为空。这可能意味着您之前已在该方法中调用了storedCredential
上的方法或访问过数据成员。