为什么一个String值要先赋空值

String teststr=rs.getString(1);
System.out.print("当前编号"+teststr+"\t");
int num=Integer.parseInt(teststr.substring(7))+1;
String nums=""+num;
String testins = null;
if(nums.length()==1){
testins="gasoft-0000"+nums;
String sql="insert into student(stno,name) values(?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, testins);
ps.setString(2, name);
ps.executeUpdate();
}
else if(nums.length()==2){
testins="gasoft-000"+nums;
String sql="insert into student(stno,name) values(?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, testins);
ps.setString(2, name);
ps.executeUpdate();
}
else if(nums.length()==3){
testins="gasoft-00"+nums;
String sql="insert into student(stno,name) values(?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, testins);
ps.setString(2, name);
ps.executeUpdate();
}
else if(nums.length()==4){
testins="gasoft-0"+nums;
String sql="insert into student(stno,name) values(?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, testins);
ps.setString(2, name);
ps.executeUpdate();
}
else if(nums.length()==5){
testins="gasoft-"+nums;
String sql="insert into student(stno,name) values(?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, testins);
ps.setString(2, name);
ps.executeUpdate();
}
else{
System.out.println("超出取值范围请坐调整");
String sql="insert into student(stno,name) values(?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, "error");
ps.setString(2, name);
ps.executeUpdate();
}
System.out.println("编号可赋值"+testins);
rs.close(); //关闭ResultSet对象
ps.close(); //关闭Statement对象
con.close();
}

“String testins = null;”不赋值不可以吗 ?

string类型在代码中属于局部变量,那么局部变量必须赋值,哪怕是null,否则编译通不过的,会提示说此变量未初始化,如果是类的成员变量,则可以不赋值,它会有默认值的。
java为了规避一些运行期间的空指针错误,都会强调局部变量必须赋值,否则编译器会立即报错,提示用户修改。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-05
可以不赋初值,因为不赋初值和你初值赋为null是一样的,但是如果你不赋初值的话,编译器会警告,所以还是建议开始就赋初值,使程序清晰一点。
第2个回答  推荐于2017-10-01
局部变量必须赋值,哪怕是 null,

否则编译通不过的,会提示说 此变量为初始化,

如果是 类的成员变量,则可以不赋值,它会有默认值的本回答被提问者采纳
第3个回答  2009-05-05
可以啊
不过好像会出个警告
提醒你

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网