我正在尝试执行以下代码。
Date date=new Date();
//System.out.println("date "+date.getTime());
List<User> d=sessionfactory.getCurrentSession().createQuery("from User").list();
List<String> onlineUsers=null;
for(User u:d){
System.out.println(((date.getTime()/1000)-(u.getLastUpdated().getTime()/1000)));
long s=((date.getTime()/1000)-(u.getLastUpdated().getTime()/1000));
long j=120;
System.out.println(u.getUsername());
if(s<=j){
onlineUsers.add(u.getUsername());
}
}
即使输出小于120,它甚至不进入if循环。为什么会这样?请帮助。
提前致谢。
答案 0 :(得分:4)
如果if语句中的代码由于onlineUsers
为null
而被执行,则抛出NPE。也许您应该尝试初始化onlineUsers
:
List<String> onlineUsers = new ArrayList<String>();
答案 1 :(得分:1)
您必须初始化此列表类型
List<String> onlineUsers=null;
这样做会为你完成工作
List<String> onlineUsers=new ArrayList<String>();