Java-程序出现了空指针异常,但是我查了好多遍还是不清楚这个指针是如何为空的,求教

发布于 2017-01-05 03:58:23 字数 3317 浏览 1290 评论 1

package zujuanxitong;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

Helper 类
public class Helper implements MysqlConfig{
private static Connection conn;
private static Statement stat;
private static ResultSet rs;
int cc;
int temp[];
/*

中间省略了连接数据库的代码,跟问题无关

*/
public void xuanTi()throws SQLException{
int i=0;
Zongshu bb = new Zongshu();
bb.jiShu();
cc=bb.aa;
//System.out.println(cc);
temp=new int[cc];
String sql = "select ItemID from iteminformation where chapters = '一' ; ";
ResultSet rs = Helper.query(sql);
while(rs.next()){
int num=rs.getInt("ItemID");
temp[i]=num;
System.out.println(temp[i]);
i++;
}
}
}

Zongshu 类
package zujuanxitong;
import java.sql.SQLException;
import com.mysql.jdbc.ResultSet;

public class Zongshu {
int aa;
public void jiShu() throws SQLException{
String sql="select count(*) from iteminformation where chapters = '一' ;";
ResultSet shu = (ResultSet) Helper.query(sql);
//while(shu.next()){
shu.next();
//System.out.println(shu.getInt(1));
aa = shu.getInt(1);
//System.out.println(aa);
//}
}
}
SuiJiChouTi 类
package zujuanxitong;

import java.util.Random;
public class SuiJiChouTi extends Helper {
int[] intRet = new int[6]; //存放随机数的数组
int dd;
public void chouTi() {
Zongshu bb = new Zongshu();
try{
bb.jiShu();
}catch(Exception e){
e.printStackTrace();
}
dd=bb.aa;//dd为选择的该类试题总数

int intRd = 0; //存放随机数
int count = 0; //记录生成的随机数个数
int flag = 0; //是否已经生成过标志

while(count<6){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%dd;//dd为该类试题总数,随机数的范围设定,dd=10意思为 范围是0~9
for(int i=0;i<count;i++){
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}//生成随机数,并初始化intRet[]

Helper tt = new Helper();
try{
tt.xuanTi();
}catch(Exception e){
e.printStackTrace();
}//声明temp[]

for(int t=0;t<6;t++){
int w=intRet[t];
//if(temp[w]!=null)
System.out.println(temp[w]);//出现空指针异常的代码
}
}

public static void main(String[]args){
SuiJiChouTi sjct= new SuiJiChouTi();
sjct.chouTi();
}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浮生未歇 2017-02-28 18:12:30

【tt.xuanTi();】调用的是tt的对象,所以this.temp还是没有初始化,这样肯定temp就会空指针。
可以直接把【tt.xuanTi()】改成【this.xuanTi()】调用就行!相当于自己调用自己,temp就能初始化了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文