加载带有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”。为了清楚起见,我做了翻译。