package javajazzup;
public class LoginBean{
String loginid;
String pwd;
public LoginBean(){}
public String getLoginid(){
return loginid;
}
public void setLoginid(String loginid){
this.loginid = loginid;
}
public String getPwd(){
return pwd;
}
public void setPwd(String pwd){
this.pwd = pwd;
}
public String CheckValidUser(){
if(loginid.equals("JavaJazzUp") && pwd.equals("mypwd")){
return "success";
}
else{
return "fail";
}
}
}
空指针异常
回答
要获得null pointer
要么loginid
是null
或pwd
是null
。看起来他们没有正确设置。但是,如果没有提供更多信息,我们无法帮助您。
您的私有成员变量loginid
和pwd
都在您的默认构造函数中初始化为null,因为您不需要执行任何操作将它们设置为任何默认值。如果您取消引用任何一个而不将它们设置为非空引用,则将获得NullPointerException
。
试试这样说:
package javajazzup;
public class LoginBean{
String loginid;
String pwd;
public LoginBean(String user, String password)
{
this.loginid = user;
this.pwd = password;
}
public LoginBean()
{
this("", "");
}
public String getLoginid(){
return loginid;
}
public void setLoginid(String loginid){
this.loginid = loginid;
}
public String getPwd()
{
return pwd;
}
public void setPwd(String pwd)
{
this.pwd = pwd;
}
public boolean checkValidUser(String username, String password)
{
return (loginid.equals(username) && pwd.equals(password));
}
}
你应该改变你的方法CheckValidUser()来:
public String CheckValidUser(){
if("JavaJazzUp".equals(loginid) && "mypwd".equals(pwd)){
return "success";
}else{
return "fail";
}
}
还等什么,他的计划将不会再正确,因为他并没有为自己的用户名和密码工作...它会返回“失败”每次... – 2010-07-20 12:08:13
我认为他将自己的用户名和密码的地方外部类(如Andreas_D在他的测试案例中已经展示过)并且调用CheckValidUserMethod()来验证。无论如何,至少这个函数不会抛出NullPointerException。 – craftsman 2010-07-20 12:14:54
@Petar Minchev - 是什么让你觉得没有设置登录名和密码?我没有看到这个bean如何被使用。 – tylermac 2010-07-20 12:16:44
测试用例
public static void LoginBeanTest() {
LoginBean bean = new LoginBean();
bean.setLoginid("JavaJazzUp");
bean.setPwd("mypwd");
System.out.println(bean.CheckValidUser());
bean.setPwd("wrongpwd");
System.out.println(bean.CheckValidUser());
bean.setLoginid(null);
try {
System.out.println(bean.CheckValidUser());
catch (NullPointerException npe) {
System.out.println("NPE as expected");
}
bean.setLoginid("");
bean.setPwd(null);
try {
System.out.println(bean.CheckValidUser());
catch (NullPointerException npe) {
System.out.println("NPE as expected");
}
}
- 1. 空指针异常
- 2. 空指针异常
- 3. 空指针异常
- 4. 空指针异常
- 5. 空指针异常?
- 6. 空指针异常
- 7. 空指针异常
- 8. 空指针异常
- 9. 空指针异常
- 10. 空指针异常
- 11. 空指针异常
- 12. 空指针异常
- 13. 空指针异常
- 14. 空指针异常
- 15. 空指针异常
- 16. 空指针异常
- 17. 空指针异常
- 18. 空指针异常
- 19. 空指针异常
- 20. 空指针异常
- 21. 空指针异常
- 22. 空指针异常
- 23. 空指针异常
- 24. 空指针异常
- 25. JMS ConnectionFactory空指针异常
- 26. Java空指针异常
- 27. 空指针异常与objectinputstream
- 28. Java:空指针异常
- 29. Jreport JasperRunManager.runReportToPdfStream空指针异常
- 30. 空指针异常@ stopService()
那么问题是什么? :) – willcodejavaforfood 2010-07-20 12:01:18
“loginid”或“pwd”为空。这就是我们从标题和给出的代码中可以看出的全部内容。 – krock 2010-07-20 12:01:32
欢迎来到StackOverflow!请更加努力地回答你的问题,以便清楚你在问什么。 – 2010-07-20 12:01:55