2010-07-20 238 views
0
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"; 
    } 
} 
} 
+1

那么问题是什么? :) – willcodejavaforfood 2010-07-20 12:01:18

+2

“loginid”或“pwd”为空。这就是我们从标题和给出的代码中可以看出的全部内容。 – krock 2010-07-20 12:01:32

+2

欢迎来到StackOverflow!请更加努力地回答你的问题,以便清楚你在问什么。 – 2010-07-20 12:01:55

回答

1

要获得null pointer要么loginidnullpwdnull。看起来他们没有正确设置。但是,如果没有提供更多信息,我们无法帮助您。

1

您的私有成员变量loginidpwd都在您的默认构造函数中初始化为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)); 
} 

}

6

你应该改变你的方法CheckValidUser()来:

public String CheckValidUser(){ 
     if("JavaJazzUp".equals(loginid) && "mypwd".equals(pwd)){ 
     return "success"; 
     }else{ 
     return "fail"; 
     } 
    } 
+0

还等什么,他的计划将不会再正确,因为他并没有为自己的用户名和密码工作...它会返回“失败”每次... – 2010-07-20 12:08:13

+1

我认为他将自己的用户名和密码的地方外部类(如Andreas_D在他的测试案例中已经展示过)并且调用CheckValidUserMethod()来验证。无论如何,至少这个函数不会抛出NullPointerException。 – craftsman 2010-07-20 12:14:54

+0

@Petar Minchev - 是什么让你觉得没有设置登录名和密码?我没有看到这个bean如何被使用。 – tylermac 2010-07-20 12:16:44

3

测试用例

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"); 
    } 
}