当我尝试验证登录时,我不断收到NullPointerException。
public boolean checkPassword(String name, String password) {
FindIterable<Document> user = null;
user = collection1.find(new Document("_id", name));
if (user == null) {
System.out.println("User not in database");
}
String passwordDB = user.first().get("password").toString();
String passwordSplitted = passwordDB.split(",")[1];
if (password.equals(passwordSplitted)) {
return true;
}
return false;
}
问题出在这里?任何解决方案?
答案 0 :(得分:1)
尽管如@Amit指出的那样,它需要异常堆栈跟踪来识别它的确切原因。但是,代码中几乎没有什么可以改进的地方: -
if (user == null) {
System.out.println("User not in database");
}
String passwordDB = user.first().get("password").toString(); // this is still reached.
if (user == null) {
System.out.println("User not in database");
return false; // inferring your shared piece of code for default returns false
}
,
检查不会阻止您的代码投放NPE
String passwordSplitted = passwordDB.split(",")[1]
如果没有找到文档,您可能希望将该块的其余部分返回或放入else中。
apply plugin: 'kotlin-android-extensions'
确保您分割的字符串中包含字符itemView.tv_title
。由于您在代码行中分隔后访问第二个子字符串 -
ViewHolder