我在global中创建了对象。
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。
应该做些什么改变?
答案 0 :(得分:5)
在推送数据之前,您必须先启动columns2
。
columns2 = new Object[NumOfCol];
答案 1 :(得分: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);
}
答案 2 :(得分: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。