Java 什么';这个代码块怎么了?
我试图从实体对象列表中筛选出一些数据。以下是我的示例代码:Java 什么';这个代码块怎么了?,java,Java,我试图从实体对象列表中筛选出一些数据。以下是我的示例代码: List<Student> lstUniversalEvents = getAllStudentEvents(StudentID,startTime,endTime); List<Student> lstTriggerEvents=null; if(lstUniversalEvents.size()>0) { for (Student event1 : lstUniversalEvents)
List<Student> lstUniversalEvents = getAllStudentEvents(StudentID,startTime,endTime);
List<Student> lstTriggerEvents=null;
if(lstUniversalEvents.size()>0)
{
for (Student event1 : lstUniversalEvents)
{
if(strHighSchool.equals("true"))
{
if(event1.getClass().equals("HIGH_SCHOOL"))
{
lstTriggerEvents.add(event1);
}
}
}
}
List lstuversalevents=getAllStudentEvents(StudentID、startTime、endTime);
List LSTRIGGEREvents=null;
如果(lstUniversalEvents.size()>0)
{
用于(学生活动1:LST UniversalEvents)
{
if(strHighSchool.equals(“true”))
{
如果(event1.getClass()等于(“高中”)
{
lstTriggerEvents.add(事件1);
}
}
}
}
行lstriggerevents.add(event1)代码>正在抛出java.lang.NullPointerException
通过故障排除,我发现以下问题:
lstUniversalEvents
列表包含数据
如果(lstUniversalEvents.size()>0)
已通过,则条件
条件if(strHighSchool.equals(“true”)
已通过
条件if(event1.getClass().equals(“高中”)
通过
因此,基本上,它无法将事件添加到新列表LSTriggerEvents中
如何修复此问题?您从未初始化过lstTriggerEvents
,它仍然为空。
将声明更改为
List<Student> lstTriggerEvents=new ArrayList<Student>();
List lstriggerievents=new ArrayList();
声明变量时,必须对其进行初始化,否则JVM将分配一个默认值。对于引用类型(如您的列表),通过将lstriggerevents
设置为null
以外的值,该值为null
List<Student> lstTriggerEvents = new ArrayList<Student>();
List lstriggerievents=new ArrayList();
或者,在Java 7+中
List<Student> lstTriggerEvents = new ArrayList<>();
List lstriggerievents=new ArrayList();
您没有初始化LSTriggerEvents列表。它是空的。试一试
List<Student> lstTriggerEvents= new ArrayList<Student>
List lstriggerievents=new ArrayList