获取Java错误无法解析为变量

获取Java错误无法解析为变量,java,sql,variables,Java,Sql,Variables,我已经搜索过了,但似乎仍然找不到正确的答案。我试图从数据库中提取数据,并将一组对象添加到ArrayList中。我的IDE告诉我messages.addobjMessage行中的objMessage无法解析为变量。当我在函数开头声明ArrayList messages=null时,为什么它会告诉我这一点 谢谢 ArrayList<Message> messages = null; try { sqlConn = ds.getConnection();

我已经搜索过了,但似乎仍然找不到正确的答案。我试图从数据库中提取数据,并将一组对象添加到ArrayList中。我的IDE告诉我messages.addobjMessage行中的objMessage无法解析为变量。当我在函数开头声明ArrayList messages=null时,为什么它会告诉我这一点

谢谢

    ArrayList<Message> messages = null;

    try {
        sqlConn = ds.getConnection();           
        sqlConnector = new SQLConnector(sqlConn);
        String sql = "SELECT * FROM table WHERE thing = 1;";

        rs = sqlConnector.getData(sql);

        while(rs.next()) {
            String stuff = rs.getString("stuff");

            if(stuff.toUpperCase().contains(stuff.toUpperCase())) {
                int id = rs.getInt("id");
                String data = rs.getString("data");
                Date time = rs.getDate("time");
                Message objMessage = new Message(id, time, data);
            }

            messages.add(objMessage);   
        }
      catch(Exception e) {
     // catch exception
      } 
变量objMessage在if块的大括号内声明。它不存在于那个街区之外。假设将line messages.addobjMessage向上移动到if块中,将消除该特定错误


但是您的messages对象为null,因此您仍然无法向其添加任何内容。

您正在将消息初始化为null。。。至少,实例化应该是:arraylistmessages=newarraylist;是的,谢谢。我不明白,如果我把它放在if语句中,为什么它总是说null pointer,但当我把它移到if语句之外时,它就产生了这个错误。忘了我声明了变量并将其设置为null,并且没有实例化新对象。愚蠢的错误。非常感谢。