[英]What's wrong with this code block?
我試圖從實體對象列表中過濾掉一些數據。 這是我的示例代碼:
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);
}
}
}
}
行lstTriggerEvents.add(event1);
拋出java.lang.NullPointerException。
故障排除,我發現以下內容:
lstUniversalEvents
列表包含數據。 if(lstUniversalEvents.size()>0)
被通過 if(strHighSchool.equals("true"))
被通過 if(event1.getClass().equals("HIGH_SCHOOL"))
被通過 所以基本上,它沒有將事件添加到新列表lstTriggerEvents。
我該如何解決?
你從未初始化lstTriggerEvents
,它仍然是null。 將聲明更改為
List<Student> lstTriggerEvents=new ArrayList<Student>();
聲明變量時必須初始化它,否則JVM會分配默認值。 對於引用類型(如列表),該值為null
。
通過將lstTriggerEvents
設置為null
以外的null
。
List<Student> lstTriggerEvents = new ArrayList<Student>();
或者,在Java 7+中,
List<Student> lstTriggerEvents = new ArrayList<>();
您沒有初始化lstTriggerEvents列表。 它是空的。 嘗試
List<Student> lstTriggerEvents= new ArrayList<Student>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.