【问题标题】:getting null in the get set method using JAVA使用 JAVA 在 get set 方法中获取 null
【发布时间】:2017-02-03 04:51:48
【问题描述】:

我在做多窗口java表单。

所以基本上我的用户需要注册一个帐户。

BELOW 是我的设置类

public class SecureData {

 private String reguserName;
 private String password ;
 private String userName;
 private String regpassword ;
 private String confirmPassword ;
 private String email ;
 private String contact ;
 private String question1Text ;
 private String question2Text;
 private String answer1Text;
// private String answer2Text ;
 private String userDetails;


  public String getregUserName() {
    return reguserName;
}

public void setregUserName(String reguserName) {
    this.reguserName = reguserName;
}

public String getregPassword() {
    return regpassword;
}

public void setregPassword(String regpassword) {
    this.regpassword = regpassword;
}


 public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

下面是我的注册类的部分代码

String UserName = nameField.getText();
String password = passwordField.getText();
String confirmPassword = confirmField.getText();
String email = emailField.getText();
String contact = contactField.getText();
String question1Text = comboBox.getSelectedItem().toString();
//String question2Text = question2Filed.getSelectedItem().toString();
String answer1Text = answer1Field.getText();
//String answer2Text = answer2Field.getText();
String userDetails = "";



sd.setUserName(UserName);
sd.setPassword(password);
sd.setConfirmPassword(confirmPassword);
sd.setContact(contact);
sd.setQuestion1Text(question1Text);
//sd.setQuestion2Text(question2Text);
sd.setAnswer1Text(answer1Text);

最后...我有第三个 JAVA 类,它在另一个新窗口形式中执行某些功能

try {
    SecureData secureinfo = new SecureData();
    String UserNameLog = secureinfo .getUserName();
    String PassLog = secureinfo.getPassword();
    System.out.println(PassLog);

    String pidviduser;
    String pidvidpass;

    //cREATING hval2 NOW
    pidvidpass = PIDstring+":"+VIDstring + ":" +PassLog;

然而我的问题是我在第三个 java 类中的密码为空。 我大致了解是由于 私有 SecureData 安全信息 = 新 SecureData();但是有什么例子可以解决我的这个问题吗?

如果有人可以就此提出建议,请提前致谢。

【问题讨论】:

  • 理想情况下,第三类应该使用代码注册部分中的SecureData POJO。但是缺少这么多代码,我能说的就这么多了。

标签: java get set


【解决方案1】:

您已经在Registration 类中设置了值,这是您问题中的第二类。下一个方法是将您的对象sd 传递给您的第三类。正如斯蒂芬 C 所说,它实际上是您的属性中的空值,因为您创建了一个 new SecureData() 并且您没有设置它的字段值。因此,您无需创建SecureData(),只需在第三类中传递您的sd 对象即可。在你的第三课中是这样的:

public void someMethod(SecureData sd) {
 String UserNameLog = sd.getUserName();
    String PassLog = sd.getPassword();
    System.out.println(PassLog);

    String pidviduser;
    String pidvidpass;

    //cREATING hval2 NOW
    pidvidpass = PIDstring+":"+VIDstring + ":" +PassLog;
}

在您的2nd Class注册课程中:

sd.setUserName(UserName);
sd.setPassword(password);
sd.setConfirmPassword(confirmPassword);
sd.setContact(contact);
sd.setQuestion1Text(question1Text);
//sd.setQuestion2Text(question2Text);
sd.setAnswer1Text(answer1Text);

ThirdClass third = new ThirdClass();
third.someMethod(sd);

我刚刚实例化了您的 Third Class 以访问您的 someMethod(SecureData sd) 方法,假设它是您的代码设计。

【讨论】:

  • 哈哈..谢谢..我去试一试。并感谢所有帮助过的人。
【解决方案2】:

在上一堂课中,您正在创建一个全新的SecureInfo 对象,然后立即尝试读取密码。自然是null在此实例中,您尚未设置密码字段。你将它设置在一个不同的实例中。

【讨论】:

  • 可能需要分享之前创建的SecureData,但谁知道呢
  • 我会尝试一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多