-1

我正在尝试执行以下代码。

    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 循环。为什么会这样?请帮忙。

提前致谢。

4

2 回答 2

4

如果您的 if 语句中的代码被执行,则抛出 NPE,因为onlineUsersis null. 也许你应该尝试初始化onlineUsers

List<String> onlineUsers = new ArrayList<String>();
于 2013-09-08T04:04:13.240 回答
1

您必须初始化此 List 类型

List<String> onlineUsers=null;

这样做它会为你做的工作

List<String> onlineUsers=new ArrayList<String>();
于 2013-09-08T04:21:34.690 回答