加载带有rs.next()的java数组时,无论发生什么情况,都会抛出空指针错误。通过控制台检查
我有一张非常简单的桌子加载带有rs.next()的java数组时,无论发生什么情况,都会抛出空指针错误。通过控制台检查,java,arrays,sqlite,nullpointerexception,resultset,Java,Arrays,Sqlite,Nullpointerexception,Resultset,我有一张非常简单的桌子 ╔════╦═══════╗ ║ id ║ title ║ ╠════╬═══════╣ ║ 1 ║ cow ║ ║ 2 ║ duck ║ ╚════╩═══════╝ ID是INT 标题是文本 我试图用这两个寄存器填充一个数组 集合类的构造函数为(int,String) 我的代码: collection[] co=null; String query="SELECT * FROM collection"; ps=conn.prepareStateme
╔════╦═══════╗
║ id ║ title ║
╠════╬═══════╣
║ 1 ║ cow ║
║ 2 ║ duck ║
╚════╩═══════╝
ID是INT
标题是文本
我试图用这两个寄存器填充一个数组
集合类的构造函数为(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),但都是一样的
请帮忙。这里:
collection[] co=null;
[...]
co[counter]=...
您正试图为null
的数组赋值
在将值放入数组之前必须初始化数组:collection[]co=new collection[42]
但是,由于您可能事先不知道所需的大小,因此可能需要将项目存储在列表中
List<collection> co = new ArrayList<>();
co.add(new collection(rs.getInt("id"),rs.getString("title")));
List co=new ArrayList();
co.add(新集合(rs.getInt(“id”)、rs.getString(“title”));
注意:集合
对于类来说是个可怕的名字。你应该改变它。类名应该以大写字母开头,并且Collection
已经被采用(并被广泛使用)。Collection[]co=null;co[counter]=
我整晚都在编码大约18个小时,很难理解任何东西。怎么了?谢谢!实际上是西班牙语中的“coleccion”。为了清楚起见,我做了翻译。