关于String数组的使用问题

friendyou 2003-08-22 11:16:28
try{
ResultSet rs=mydb.executeQuery(sqlselect);
int rows=rs.getMetaData().getColumnCount();
String[] result=new String[rows];
out.println("<table border='1' align='center'>");
while(rs.next())
{
for(int i=0;i<rows;i++)
{
result[i]=new String(rs.getBytes(i+1));
result[i]=myutil.isoTogb(result[i]);
out.println(result[i]);
}
}out.println("</table>");
}catch(Exception ex){out.println(ex.toString());}

字符串数组,像上面这样使用会提示说java.lang.NullPointerException的错误,是哪里出的错误?声明不对,还是使用上的毛病?请大家执教!
...全文
173 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
diewikwang 2003-08-23
  • 打赏
  • 举报
回复
好像很少会new string的,不过按照你的写法,这样可以吧:
result[i] = (rs.getBytes(i+1)==null? null: new String(rs.getBytes(i+1)))
seaman0916 2003-08-23
  • 打赏
  • 举报
回复
楼主:你的String用法是正确地,String 本来就是个类,为什么不能生成对象呢?而且,我也这样用过! 支持!

所以考虑你 ResultSet rs=mydb.executeQuery(sqlselect);是不是正确执行了! 你应该试着判断一下 rs 是不是为空?
如果rs不为空,你要确定下面两句会被正确执行!
result[i]=new String(rs.getBytes(i+1));
result[i]=myutil.isoTogb(result[i]);
不然的话, out.println(result[i]);肯定会抛出java.lang.NullPointerException的错误!

试试看!

friendyou 2003-08-23
  • 打赏
  • 举报
回复
恩,现在问题已经解决了,实际上就是楼上所说的那样---String的构造函数String(byte[])如果传入的参数是null,则会抛出空指针例外!
因为我想数据库插入的时候,并不是每一项都有插入值的,所以查询的时候才会这样,不过楼上的说rs.getString(i+1)这个我倒是没有试过,能行么?大家一般都怎么用?
taolei 2003-08-23
  • 打赏
  • 举报
回复
没见过你这么用String的,
这里不能用rs.getBytes,要用
result[i] = rs.getString(i+1);
friendyou 2003-08-22
  • 打赏
  • 举报
回复
恩,我想我找了半天的问题就在这里。
那我想让程序查到了传入参数是null还仍然往下执行的话,比方说如果传入参数是mull那么就把那个值当成是null,该怎么做?
diewikwang 2003-08-22
  • 打赏
  • 举报
回复
查了一下api,
String的构造函数String(byte[])如果传入的参数是null,则会抛出空指针例外,
我想你检查一下查出来的结果是不是有为null的?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧