下面这几句代码提示有NullPointerException问题:
其中cwdfMap是一个Map对象 String sDF=cwdfMap.get(CWZBDM).toString();
double dfValue=Double.parseDouble(sDF);提示错误就是在String sDF =cwdfMap.get(CWZBDM).toString()这行.
但是我在输出的时候这里面是都有值的,
其中有两个是0.00那么为什么会有这种错误提示呢?
其中cwdfMap是一个Map对象 String sDF=cwdfMap.get(CWZBDM).toString();
double dfValue=Double.parseDouble(sDF);提示错误就是在String sDF =cwdfMap.get(CWZBDM).toString()这行.
但是我在输出的时候这里面是都有值的,
其中有两个是0.00那么为什么会有这种错误提示呢?
HttpSession session = req.getSession(false);//获取session
String PJLX=(String)session.getAttribute("RWLB");//评级类型
String PJXH=(String)session.getAttribute("PJXH");//评级序号
String PJJD=(String)session.getAttribute("PJJD");//评级阶段
String RWBH=(String)session.getAttribute("SPRWBH");//任务编号
String LCXH=(String)session.getAttribute("activityId");//流程序号
//避免空指针
PJLX=PJLX==null?"":PJLX;
PJXH=PJXH==null?"":PJXH;
PJJD=PJJD==null?"":PJJD;
RWBH=RWBH==null?"":RWBH;
LCXH=LCXH==null?"":LCXH;
if(PJJD.equals("")){
ErrMsg="程序出错,session中取得的PJJD不能为空!";
YwdzAssist.alert(res,req,ErrMsg,"");
return false ;
}
String sql="",sql1="",sql2="";
sql="select * from Loan.XT_CWZBHYGXQZ where HYDM='" + HYDM + "' and PJMX In('01','11')";
System.out.println(sql);
System.out.println("PJLX="+PJLX+";PJXH="+PJXH+"PJJD="+PJJD+"RWBH="+RWBH+"LCXH="+LCXH);
DBManage DB=new DBManage();
DB.setAutoCommit(false);//设置不自动提交
ResultSet rs=null;
this.totalScore=0;
try{
rs=DB.sqlQuery(sql);
if(initCwdfMap()){
while(rs.next()){
String CWZBDM=rs.getString("CWZBDM").trim();
String CWYSDM=rs.getString("CWYSDM").trim();
String sDF= "";
sDF=cwdfMap.get(CWZBDM).toString();//取出得分
double dfValue=Double.parseDouble(sDF);
totalScore=totalScore + dfValue;
System.out.println("CWZBDM="+CWZBDM+"-----------CWYSDM="+CWYSDM);
System.out.println("sDF="+sDF);
System.out.println("dfValue="+dfValue);
if(PJJD.equals("3")||PJJD.equals("4")){//非流程的处理
//-----------------------------更新的sql语句--------------------------------------------
sql1 = "update Loan.PJ_GC_CWYS set ZBDF=" + dfValue + ",BBQS1='" + BQBBQS + "',BBQS2='" + SQBBQS
+"' where KHBH='" + KHBH + "' and PJLX='" + PJLX+"' and PJXH=" + PJXH + " and PJJD='"
+ PJJD + "' and CWZBDM='" + CWZBDM + "' and PJMX='01'";
//------------------------------插入的sql语句--------------------------------------------
sql2 ="insert into Loan.PJ_GC_CWYS(KHBH,PJLX,PJXH,PJJD,RWBH,LCXH,BBQS1,BBQS2,CWYSDM,CWZBDM,ZBDF,PJMX)"
+" values('" + KHBH + "','" +PJLX + "'," + PJXH + ",'" + PJJD + "','" + RWBH + "',0,'"
+ BQBBQS + "','" + SQBBQS + "','" + CWYSDM +"','" + CWZBDM + "'," + dfValue+ ",'01')";
}
else {//流程的处理
//-------------------------------更新的sql语句------------------------------------------
int iLCXH=Integer.parseInt(LCXH)-2;
sql1 = "update Loan.PJ_GC_CWYS set ZBDF=" + dfValue + ",BBQS1='" + BQBBQS + "',BBQS2='" + SQBBQS
+"' where KHBH='" + KHBH + "' and RWBH='" + RWBH + "' and LCXH=" + iLCXH + " and PJJD='"
+ PJJD + "' and CWZBDM='" + CWZBDM + "' and PJMX='01'";
//--------------------------------插入的sql语句------------------------------------------
sql2 ="insert into Loan.PJ_GC_CWYS(KHBH,PJLX,PJXH,PJJD,RWBH,LCXH,BBQS1,BBQS2,CWYSDM,CWZBDM,ZBDF,PJMX)"
+" values('" + KHBH + "','" +PJLX + "'," + PJXH + ",'" + PJJD + "','" + RWBH + "'," + iLCXH + ",'"
+ BQBBQS + "','" + SQBBQS + "','" + CWYSDM + "','" + CWZBDM + "'," + dfValue+ ",'01')";
}
System.out.println(sql1);
System.out.println(sql2);
//debugPrint(sql1);
//debugPrint(sql2); edit in 2006-06-27 batman
//更新或插入PJ_GC_CWYS
//System.out.println("sqlUpdateTotalCount="+DB.sqlUpdate(sql1));
int totalCount;
int insertCount;
totalCount = DB.sqlUpdate(sql1);
System.out.println("totalCount="+totalCount);
if(totalCount <=0){ //若更新条数为0,则插入一条新记录
insertCount = DB.sqlUpdate(sql2);
System.out.println("insertCount="+insertCount);
}
if(!DB.getErrMsg().trim().equals("")){
DB.rollback();
ErrMsg="数据存入[PJ_GC_CWYS]表失败!错误原因 :"+DB.getErrMsg();
System.out.println(ErrMsg);
YwdzAssist.alert(res,req,ErrMsg,"");
return false;
}
//超过界限,取极值
//if(totalScore>100) totalScore=100;
System.out.println("totalScore="+totalScore);
if(totalScore<0) totalScore=0;
DB.commit();//提交事务
}
} }
catch(SQLException sqlE){
DB.rollback();//事务回滚
ErrMsg="数据存入[PJ_GC_CWYS]表失败!错误原因 :"+sqlE.getMessage();
System.out.println(ErrMsg);
YwdzAssist.alert(res,req,ErrMsg,"");
return false;
}
finally{
if(rs!=null){
try{rs.close();rs=null;}
catch(SQLException sqlE1){}
}
if(DB!=null){
DB.close();
DB=null;
}
}
return true;
}
String CWZBDM=rs.getString("CWZBDM").trim();
你把CWZBDM输出到控制台看看它的值
差一下initCwdfMap()时有没有把CWZBDM的值的value设进去
String sDF=(String)cwdfMap.get(CWZBDM);因为cwdfMap.get(CWZBDM)获得的可能是null,null.toString();肯定是异常喽;或者这样改:Object obj = cwdfMap.get(CWZBDM);
if (null != obj) {
String sDF=obj.toString();
}