问答详情
源自:3-7 request对象(上)

用户名空指针

为什么在提交用户名的时候不用考虑空指针的问题?

提问者:qq_海星_0 2017-01-20 12:13

个回答

  • 一曝十寒
    2017-01-20 12:39:31
    已采纳

    可以自己在业务逻辑里进行条件判断的完善

  • StefanLee2015
    2017-02-10 17:10:09

    简单点说,就是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框,默认就是空值的字符串对象,有对象, 值为空,能取到。

  • StefanLee2015
    2017-02-10 16:33:51

    在用户名这一栏,不输入东西,取到的参数为空白的字符串,但是是实例化的,有该字符串对象存在,所以输出的时候,是不会报空指针,但是会显示字符串为空(白)