我正在编写一个程序,有时我需要使用 JOptionPane 在窗口上打印一个字符串。该行的代码如下所示:
JOptionPane.showMessageDialog(null, "Name: " + a.getName());
getName 函数引用我创建的对象 a,它有一个返回字符串的方法。但是,当我的代码达到这一点时,程序似乎进入了某种无限循环,因为窗口永远不会弹出,并且在使用调试时,它似乎永无止境。
主要的是,当我使用 getName 时,我允许用户在主驱动程序中使用不同的函数设置此名称。
getName() 基本上就是一行,返回名称;
我的 setName() 函数的代码基本上是:
Scanner a = new Scanner(System.in);
System.out.print("Pick a name: ");
name = in.nextLine();
a.close();
Name 是类中的私有变量。close() 不是必需的,但我尝试了它是否有任何效果。
我注意到的是,如果我使用上面的代码,窗口永远不会弹出,我会陷入无限循环。但是,如果我只是将 name = 行更改为任何内容,例如:
name = "foo";
代码运行流畅,弹出窗口,我没有陷入循环。即使在程序提示我时我没有输入名称,导致空字符串,窗口仍然没有弹出。任何人都可以帮助和建议我为什么会这样吗?谢谢。