我在第5行收到NullPointerException。我不确定为什么或如何解决它......
/*JQUERY FUNCTIONS*/
var activeUser = $('.activeUsers');
var eligibleUser = $('.eligibleUsers');
var eligibleUserCount = function(){eligibleUser.html($("#eligibleUsers option").length)};
var availableUserCount = function(){activeUser.html($("#availableUsers option").length)};
eligibleUserCount();
availableUserCount();
$('#availableUsers').click(function () {
$('#availableUsers option:selected').remove().appendTo('#eligibleUsers');
availableUserCount();
eligibleUserCount()
});
$('#eligibleUsers').click(function () {
$('#eligibleUsers option:selected').remove().appendTo('#availableUsers');
availableUserCount();
eligibleUserCount()
});
任何指针?
答案 0 :(得分:6)
虽然您通常使用equals
方法比较Java对象,但null
比较是一个值得注意的例外:没有Java Object
将equal
与null
进行比较 - Java类需要满足这个requirement:
对于任何非空引用值x,
x.equals(null)
应返回false
。
此外,file
的开头为null
,因此调用其中的任何方法(包括equals
)都会产生NPE。
因此,您需要使用引用相等:
while (file == null) {
...
}
答案 1 :(得分:1)
在第五行中,您有 Int64 NumberToCall = (Int64)phoneCall.Attributes["new_identity"];
Int64 ReceiveCallOn = (Int64)phoneCall.Attributes["new_destination"];
var apiKey = phoneCall.Attributes["new_apikey"].ToString();
Int64 fId = (Int64)phoneCall.Attributes["new_fid"];
,它会尝试在while (file.equals(null))
上调用equals
方法。但是,您在第三行显式将该变量设置为null:file
,这当然会导致在使用任何方法时收到的NullPointerException。
如果要检查变量是否为null,则不能尝试调用其上的任何方法 - 请改用Scanner file = null;
。 (使用您当前的代码,while (file != null)
中的任何内容都不会执行,因为您从未初始化while
。)
答案 2 :(得分:0)
在第5行中,您使用的变量文件在第3行中设置为null。 您需要先将变量设置为非空值,然后才能调用其上的方法。