我的生活不能弄明白为什么我在这里收到错误。它允许我输入输入,但随后退出并在以" emp [i] .setName"开头的行中说出NullPointerException。
String dpt, salary, name;
Manager[] emp = new Manager[3];
for (int i=0; i<3; i++)
{
name = JOptionPane.showInputDialog("Enter Name");
emp[i].setName(name);
答案 0 :(得分:3)
在Java中创建数组时,所有元素都是空的(无论如何都是非基本类型;例如,int将只是0
)。如果要创建包含实际对象的数组,则需要创建它们。一个选项(也是最简单的)就是在这样的循环中创建它们:
String dpt, salary, name;
Manager[] emp = new Manager[3];
for (int i=0; i<emp.length; i++)
{
emp[i] = new Manager(); // Create the object
name = JOptionPane.showInputDialog("Enter Name");
emp[i].setName(name);
}
另请注意,我在emp.length
循环中使用for
而不是数字3.这样,如果您的经理数组的大小发生变化,那么您将无法获得最终结果ArrayIndexOutOfRangeException
(尝试访问数组中不存在的元素)。
This question有一个更详细的答案,绝对值得一读。