我创建了一个类(Employee),它只包含java中的数据成员以匹配employee表的行。 String Name,int Age,double Salary等。
接下来,我创建一个固定维度为50的对象employee emp[]=new employee[50]
数组,并从mySQL DB中读取一些数据行并逐个存储在此对象数组中。
然后,该对象数组由方法返回给调用方法。
接下来,我想像这样
while(!emp[arraycounter].Name.equals(""))
我想,我正在检查名称为空的对象数组的第一个元素。
这会抛出NullPointerException
。我错过了什么?
实际上,我希望能够将此对象数组的元素传递给方法,这些方法被声明为接受employee类的对象作为参数。
周六
答案 0 :(得分:-1)
例如,如果数据库中只有35行,则当执行emp [35]时,该员工为空。因此,当您执行emp [35] .Name时,您将获得NPE。 一些建议:
1 /使用小写的属性
2 /更好的用户“”.equals(字符串)比string.equals(“”)以避免NPE
3 /只需使用列表而不是数组:
List<Employee> employees= new ArrayList<Employee>();
employees.add(The data extracted form db)
答案 1 :(得分:-1)
首先,您必须包含完整的代码供我们分析。
其次,让我有点烦人 - 不要从外面访问属性。将它们设置为private并创建getName和setName方法,依此类推。这是一个很好的做法。
现在,对于您的问题 - 您要么没有初始化对象或其中的属性。也就是说,在员工构造函数中,您应该拥有所有属性的默认值(例如Name="";
),并且在读取数据之前,您应该初始化整个数组(如for(i=0;i<50;i++) emp[i]=new Employee();
)。
你可能错过了其中一个。没有代码就不可能说出哪一个。