为什么在提交用户名的时候不用考虑空指针的问题?
可以自己在业务逻辑里进行条件判断的完善
简单点说,就是text控件和checkbox控件不同,text控件不输入任何内容,他的实例已经存在,是为null的字符串;checkbox如果不勾选,就连实例都没有创建,所以get参数是get不到值的,对象都没有,你要我问谁要钱?
再加上java代码延伸理解:
public static void main(String[] args)throws Exception{ //字符串、字符串数组本身是对象,对象就涉及到实例化的概念,就是没有创建对象,就没有实例化; //如果对象根本都不存在,何来的赋值? //如果新建对象了,我们才能谈初始化,初始化就是给该对象赋值 String s = "";//新建对象字符串s,(初始化)赋值为空 String[] ss ={};//新建字符串数组对象ss,(初始化)赋值为空 system.out.println("默认值为:"+s); system.out.println("默认值为:"+ss); /*以下为错误代码,就是checkbox连字符串数组的对象都没有创建,输出他就会报语法错误 String[] ss ; system.out.print("ss");//报错,语法错误 */ }
checkbox如果没勾选,就没有实例化对象,哪来的值,所以才报空指针。而text框,默认就是空值的字符串对象,有对象, 值为空,能取到。
在用户名这一栏,不输入东西,取到的参数为空白的字符串,但是是实例化的,有该字符串对象存在,所以输出的时候,是不会报空指针,但是会显示字符串为空(白)