我对此进行了搜索,但我似乎无法找到正确的答案。我正在尝试从数据库中提取数据并将一堆对象添加到ArrayList中。我的IDE告诉我,messages.add(objMessage)行中的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
}
答案 0 :(得分:2)
您的变量objMessage
在if
块的大括号内声明。它不存在于该块之外。大概将您的行messages.add(objMessage)
移动到if
块将消除该特定错误。
但是你的messages
对象为空,所以你仍然无法向它添加任何内容。