Java-程序出现了空指针异常,但是我查了好多遍还是不清楚这个指针是如何为空的,求教
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
【tt.xuanTi();】调用的是tt的对象,所以this.temp还是没有初始化,这样肯定temp就会空指针。
可以直接把【tt.xuanTi()】改成【this.xuanTi()】调用就行!相当于自己调用自己,temp就能初始化了。