声明字符串数组时发生java错误
我在使用字符串数组时遇到此错误 JAVAlang.NullPointerException
我使用的代码如下
String[] list = null;
String sql = "SELECT * FROM pos_products";
ResultSet rs = mysql_query.execute_mysql(variables.con.conn, sql);
while (rs.next()) {
System.out.println(rs.getString("product_name"));
list[i] = rs.getString("product_name");
i++;
}
在看到这些回复后,我还需要补充一点。。首先感谢你们的回复。。现在的问题是我正在使用JList,我必须向其中添加内容。。如果我使用列表,我不能直接添加。我可以使用向量或字符串数组。你对此有什么想法
# 1 楼答案
您的列表是
null
,因此null[i]
抛出NullPointerException你应该考虑像ChrisJ描述的那样初始化它或者使用列表
编辑
这解决了两个部分,即
NullPointerException
和数据的动态获取您提到需要将其放在JList中,在这种情况下,您仍然可以使用这种方法,但要将数据检索与显示代码分开
因此,创建一个方法列表:
然后调用这个方法来创建JList
# 2 楼答案
列表当前为空,因此没有可附加项目的内容
试着做类似的事情
这将允许在从结果集中读取所有项时创建数组的大小
# 3 楼答案
我建议您更改字符串列表(或集合)的字符串数组,因为在您的示例中,您不知道将有多少产品:
# 4 楼答案
您的代码声明一个字符串数组,但它不创建数组对象。换句话说,它不为存储数组内容分配内存
你应该这样写:
new
操作符创建数组# 5 楼答案
如前所述,您需要使用“new”来声明数组,但我猜您没有这样做,因为您不知道数组应该有多大。在这种情况下,您是否考虑过使用ArrayList
# 6 楼答案
必须将数组
list
初始化为特定长度。ResultSet对象是否具有与集合大小相关的函数/属性。然后你可以做以下事情: