当前位置: 首页 > 知识库问答 >
问题:

getName返回“null”

冯宏放
2023-03-14

我尝试制作一个登录系统,其中我将在loginpage.java中使用Username来在currentuser.java中设置name。

程序在loginpage.java中显示了正确的getName。但是当我尝试在mainmenu.java中getName时,程序显示为null。我理解在mainmenu.java中创建新对象将使用新声明的对象。但是程序有没有办法在mainmenu.java内部显示与loginpage.java中相同的getName?

下面是我的setter和getter类(currentuser.java):

public class CurrentUser {
    
    private String name;

   // Setter
   public void setName(String newName) {
        name = newName;
   }    
        
   // Getter
   public String getName() {
        return name;
   }
if(rs.next()){
    CurrentUser User = new CurrentUser();                
    System.out.println("Raw data: "+ Username);
    User.setName(Username);                
    System.out.println("Inserted name: "+ User.getName());                
    JOptionPane.showMessageDialog(null, "YES");              
    menu.setVisible(true);
    this.dispose();
}
else{
    JOptionPane.showMessageDialog(null, "NO");            
}

下面是mainmenu.java的一些代码行:

public MainMenu() {
    initComponents();
    CurrentUser User = new CurrentUser();
    System.out.println("Inside MainMenu: " + User.getName());       
}

共有1个答案

陈项禹
2023-03-14

在这行CurrentUser User=new CurrentUser();中,您创建了一个新的用户对象,它用默认值null初始化了名称,您应该使用来自同一实例的getter和setter来获得正确的值

如果您想在程序关闭和再次打开时检查名称,您需要存储用户名并与它进行检查,您可以简单地使用文本文件来存储这个名称,或者您可以使用首选项来存储和获取带有键的值

从此处检查首选项API文档

 类似资料:
  • 查看了以下帖子,但对我的案例没有帮助: BluetoothDevice在getName()上始终返回null 我的问题 我正在开发一个应用程序,可以扫描附近的蓝牙设备,并显示在主屏幕上。但在少数设备(如moto G、samsung note2)上,leScanCallback上的设备名称为空。 我的代码 注意:如果返回null,我需要抛出一个警报,但我不能在onlescan内这样做,因为扫描是连续

  • 描述 (Description) java.lang.reflect.Method.getName()方法以字符串形式返回此方法的名称。 这是方法声明类的二进制名称。 声明 (Declaration) 以下是java.lang.reflect.Method.getName()方法的声明。 public String getName() 返回值 (Returns) 底层成员的简单名称。 例子 (E

  • 描述 (Description) java.lang.reflect.Field.getName()方法返回此Field对象表示的字段的名称。 声明 (Declaration) 以下是java.lang.reflect.Field.getName()方法的声明。 public String getName() 返回值 (Returns) 底层成员的简单名称。 例子 (Example) 以下示例显

  • 描述 (Description) java.lang.reflect.Constructor.getName()方法以字符串形式返回此构造函数的名称。 这是构造函数声明类的二进制名称。 声明 (Declaration) 以下是java.lang.reflect.Constructor.getName()方法的声明。 public String getName() 返回值 (Returns) 底层

  • 描述 (Description) java.util.zip.ZipFile.getName()方法返回ZIP文件的路径名。 声明 (Declaration) 以下是java.util.zip.ZipFile.getName()方法的声明。 public String getName() 返回值 (Returns) ZIP文件的路径名。 先决条件 在D:》 test 》目录中创建一个文件Hell

  • 描述 (Description) java.util.zip.ZipEntry.getName()方法返回条目的名称。 声明 (Declaration) 以下是java.util.zip.ZipEntry.getName()方法的声明。 public String getName() 返回值 (Returns) 条目的名称。 先决条件 在D:》 test 》目录中创建一个文件Hello.txt,