提问人:Martincho 提问时间:2/21/2019 更新时间:2/21/2019 访问量:34
无论如何,使用 rs.next() 加载 java 数组都会抛出空指针错误。使用控制台检查 [重复]
Loading a java array with rs.next() throws null pointer error no matter what. Checked with console [duplicate]
问:
我有一张非常简单的桌子。
╔════╦═══════╗
║ id ║ title ║
╠════╬═══════╣
║ 1 ║ cow ║
║ 2 ║ duck ║
╚════╩═══════╝
ID 为 INT
标题为文本
我正在尝试用这两个寄存器填充数组。
collection 类的构造函数为 (int,String)
我的代码:
collection[] co=null;
String query="SELECT * FROM collection";
ps=conn.prepareStatement(query);
rs=ps.executeQuery();
int counter=0;
while(rs.next()) {
co[counter]=new colleccion(rs.getInt("id"),rs.getString("title"));
System.out.println(rs.getInt("id"));
System.out.println(rs.getString("title"));
counter++;
}
System.out.println 工作正常,值显示正确。 但它一旦到达数组行就会抛出异常。
也尝试使用列号(1 和 2),但它是相同的。
请帮忙。
答:
1赞
Arnaud Denoyelle
2/21/2019
#1
这里:
collection[] co=null;
[...]
co[counter]=...
您正在尝试为数组赋值,该值为 。null
在将值放入数组之前,必须初始化数组:collection[] co= new collection[42]
但是,由于您可能事先不知道所需的大小,因此您可能希望将项目存储在List
List<collection> co = new ArrayList<>();
co.add(new collection(rs.getInt("id"),rs.getString("title")));
注意:对于一个类来说,这是一个可怕的名称。 你应该改变它。类名应以大写字母开头,并且已被采用(并被广泛使用)。collection
Collection
评论
0赞
Martincho
2/21/2019
谢谢!实际上是西班牙语中的“coleccion”。为了清楚起见,我做了翻译。
评论
collection[] co=null; co[counter]=