Java:在一个类中初始化的调用方法在其他类中给出Nullpointerexception
我定义了一个Logininfo类来存储用户的电子邮件和密码。我从登录GUI获取电子邮件和密码。使用setMethods放入Logininfo类。我将编程连接到一个mysql服务器(这里mysql不是问题)。我需要emailadres和密码,以便稍后在其他GUI中使用它进行查询。Java:在一个类中初始化的调用方法在其他类中给出Nullpointerexception
这是LOGININFO类
public class Logininfo {
public static Emailadres emailadres = new Emailadres();
public static Password password = new Password();
public static class Emailadres
{
private String emailadres;
public Emailadres()
{
emailadres = " ";
}
public void setEmailadres(String emailadres)
{
this.emailadres = emailadres;
}
public String getEmailadres()
{
return(emailadres);
}
}
public static class Password
{
private String password ;
public Password()
{
password = " ";
}
public void setPassword(String password)
{
this.password = password;
}
public String getPassword()
{
return(password);
}
}
}
在登录界面我用的是使用setMethod存储的emailadress和密码。
public class Login extends javax.swing.JFrame {
Logininfo logininfo;
Logininfo.Emailadres emailadres = new Logininfo.Emailadres();
Logininfo.Password password = new Logininfo.Password();
private boolean validate_login(String email,String wachtwoord) {
emailadres.setEmailadres(email);
wachtwoord.setPassword(password);
后来我尝试在另一个类中检索电子邮件地址和密码。
public class Account extends javax.swing.JFrame {
Logininfo logininfo;
Logininfo.EmailAdres emailadres;
Logininfo.WachtWoord password;
emailadres.getEmailadres(email);
password.getPassword(password);
我在这里得到一个Nullpointerexception。我知道你必须在登录GUI屏幕上创建一个新的Logininfo实例。但是,在Account类中,您无法创建另一个新实例。公共课不应该用于这个,我应该使用别的东西吗?
任何帮助,将不胜感激
email_adres
在Login
类是类的一个实例字段,是完全无关的Account
类的emailadres
实例字段。这两个指针指向内存中的不同位置。
如果您希望Account
的实例拥有来自Login
实例的数据,您必须以某种方式将其提供给它。
嘿,当我为这个问题写代码时,我改变了代码。 email_adres和pass_word应该是emailadres和密码。对不起, – Heijkoop
没关系,它们仍然是不同对象(甚至不同类别)的字段。 –
看来,你只是在学习Java。我*高度*建议在开始更大的冒险之前先阅读[教程](https://docs.oracle.com/javase/tutorial/java/javaOO/index.html)。例如,你是否知道所有对象都需要显式分配,与C++不同? –
设置电子邮件和密码时,这些方法需要一个字符串类型(方法'setEmailadres(String)'和'setPassword(String)')。哪里定义了'email'和'password'? – Pleasant94
他们在一个布尔值来验证来自mysql的登录。我忘了把布尔值放在那里。它现在在那里。 – Heijkoop