扫描程序的NullPointerException

时间:2015-07-09 19:32:24

标签: java nullpointerexception java.util.scanner

我在第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()
});

任何指针?

3 个答案:

答案 0 :(得分:6)

虽然您通常使用equals方法比较Java对象,但null比较是一个值得注意的例外:没有Java Objectequalnull进行比较 - 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。 您需要先将变量设置为非空值,然后才能调用其上的方法。