-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

onlineUsersisが原因で if ステートメントのコードが実行されると、NPE がスローされますnull。おそらく、初期化を試みる必要がありますonlineUsers:

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