标题:请问这个返回调用为什么会出错?
只看楼主
千年冰封
Rank: 1
等 级:新手上路
帖 子:174
专家分:0
注 册:2006-7-20
 问题点数:0 回复次数:6 
请问这个返回调用为什么会出错?

SearchBean:
package pbc;

import java.sql.*;
import java.util.ArrayList;

public class SearchBean {
private String strSql,companyName,address,tel1 = null;

public ArrayList openDb() {
ArrayList arrlist = null;
String strSql = "select top 10 * from speed.dbo.tblcompany";
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String connectionUrl = "jdbc:microsoft:sqlserver://localhost;database=speed;user=sa;password=123456";
Connection conn = DriverManager.getConnection(connectionUrl);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(strSql);
while (rs.next()) {
arrlist.add(rs.getString("companyname"));
}
conn.close();
}
catch(Exception ex){
System.out.println(ex);
System.exit(0);
}
return arrlist;

}
}

调用此Bean的ActionForm
ArrayList arrlist = searchdata.openDb();


然后这一句出错了,出错的消息为:java.lang.NullPointerException

请问为什么?

搜索更多相关主题的帖子: localhost sqlserver microsoft password database 
2006-07-25 10:24
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
得分:0 

大哥你的程序能不能发完整点,还有格式写模块化一点


曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-07-25 14:17
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
很可能是searchdata没有被new

淘宝杜琨
2006-07-25 17:47
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
得分:0 
楼上的很有想象力

曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-07-25 17:58
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
恩恩,有根据的嘛
ArrayList arrlist = searchdata.openDb();
楼主说这句抛出个空指针异常,而这句唯一能出现空指针异常的只有 searchdata.openDb();
当 searchdata=null 的时候調用了openDb(); 抛出NULL POINT EXCEPTION

之所以说很有可能是searchdata没有被new,可能只是可是new,因为searchdata的获取还有很多种途径。
比如通过setter或者构造函数获得,或者从子类或者如果searchdata是个接口的话那就是实现了这个接口的类中转换过来。这是不确定的,所以用可能这个词语。

又为什么再前面加个很字呢,那是因为从楼主的SearchBean类来看明显是一个只继承了Object的类,但是也有比较小的一部分可能searchdata是一个SearchBean类的子类。

淘宝杜琨
2006-07-25 18:59
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
得分:0 
以下是引用神vLinux飘飘在2006-7-25 18:59:07的发言:
恩恩,有根据的嘛
ArrayList arrlist = searchdata.openDb();
楼主说这句抛出个空指针异常,而这句唯一能出现空指针异常的只有 searchdata.openDb();
当 searchdata=null 的时候調用了openDb(); 抛出NULL POINT EXCEPTION

之所以说很有可能是searchdata没有被new,可能只是可是new,因为searchdata的获取还有很多种途径。
比如通过setter或者构造函数获得,或者从子类或者如果searchdata是个接口的话那就是实现了这个接口的类中转换过来。这是不确定的,所以用可能这个词语。

又为什么再前面加个很字呢,那是因为从楼主的SearchBean类来看明显是一个只继承了Object的类,但是也有比较小的一部分可能searchdata是一个SearchBean类的子类。

我语文学的不咋的,有句话没看明白,不过从表面看来,这句话写的很有逻辑和层次,富有内涵和神韵,是我辈学习的典范,容我在研究再三~~~!


曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-07-25 19:51
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
不要调我拼音输入法的错误 T_T

淘宝杜琨
2006-07-25 20:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-80120-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.240477 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved