简单类型
1、当controller方法中的参数类型为基本数据类型时。如果页面提交过来的数据为null或"",会出现数据转换的异常。
2、当controller方法中的参数类型为基本数据类型的包装类型时,页面传递过的数据可以为"",null或无该参数提交。当此方法执行时,该包装类型参数自动设为null(包装类可以设为null)。如果被其他方法调用可能抛空指针异常。比如Controller方法中存在一个Long parentId 参数,如果页面没有提交该参数。则parentId自动被设置为null。
注意,如果使用值为null 的包装类型进行拆包时,会抛空指针异常。当将parentId(null)作为参数传递到某方法中时(该方法中的参数为基本数据类型),编译时不会抛异常。但是运行时,此包装类型的参数(null)会进行拆包,此时会抛空指针异常!此异常为运行时异常。当然,如果直接将此parentId与基本数据类型运算,同样也会抛空指针异常。
总结:
1、如果使用基本数据类型,无法接受null值和""值。可能发生数据转换异常;
2、 如果使用包装类型,可以接受null值和""值,但是可能在参数传递时发生空指针异常。解决办法是在此变量在方法间传递时,全部使用包装类型。这样,此参数可以接收页面传递的""或null值。这样,调用此参数发生异常时,会在问题位置抛出。