0

我在全局 as 中创建了对象。

public Object[] columns2;

我在代码中执行一些操作:

 Statement st = con.createStatement();
 ResultSet rs = st.executeQuery("SELECT * FROM "+Gtest+"");
 ResultSetMetaData rsmd = rs.getMetaData();
 NumOfCol = rsmd.getColumnCount();
 for(int n=0;n<NumOfCol;n++)
  {
   columns2[n]=rsmd.getColumnName(n+1);
  }

因为 columns2 应该像

  Object[] columns2={"FirstName","LastName","Age"};

但它在 for 循环中给出了 nullpointerexception。

应该做哪些改变?

4

3 回答 3

5

columns2在推送数据之前,您必须先启动。

columns2 = new Object[NumOfCol];
于 2013-04-28T18:28:20.090 回答
1
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM "+Gtest+"");
ResultSetMetaData rsmd = rs.getMetaData();
NumOfCol = rsmd.getColumnCount();
columns2 = new Object[NumOfCol];
for(int n=0;n<NumOfCol;n++)
{
  columns2[n]=rsmd.getColumnName(n+1);
}
于 2013-04-28T18:29:41.103 回答
1

您尚未初始化 columns2。您可以按如下方式更改代码:

 Statement st = con.createStatement();
 ResultSet rs = st.executeQuery("SELECT * FROM "+Gtest+"");
 ResultSetMetaData rsmd = rs.getMetaData();
 NumOfCol = rsmd.getColumnCount();
 columns2 = new Object[NumOfCol];
 for(int n=0;n<NumOfCol;n++)
 {
   columns2[n]=rsmd.getColumnName(n+1);
 }

这应该使您的代码工作。尽管如果性能之类的东西对您很重要,我会研究其他数据结构,例如 Arraylist。

于 2013-04-28T18:32:11.780 回答