Springboot开发时,对前端的请求参数,后端用于接受的实体类有没有必要校验为null?

复制代码
首先给出结论:不用校验为NULL,如果null,Springboot会直接抛异常而不是返回NUll。只需要对其中的属性判断是否==null
问题代码如下:
java 复制代码
public R<Boolean> addzbsz (@RequestBody RequestzbszAdd requestzbszAdd) {
    if ( requestzbszAdd==null){
        return true;
    }else {
        return false;
    }

分析过程:

首先==null对于引用类型是判断这个对象有没有被加载到内存当中。对象的产生是由声明、是实列化、初始化三个过程.

初始化: RequestzbszAdd requestzbszAdd; 也就是声明一个变量

实列化:使用new 关键字
初始化:new RequestzbszAdd();

完成以上三个步骤才是把变量放入了内存,也就是有了地址。

然后回到问题上,我们判断对象==null,无非就是怕前端传过来得的参数为空,结论就是不用这么做,要做的话就是针对于对象里的属性来判断是否为null.因为只要对象初始化以后,无论对象里的属性有没有赋值,都不可能为null。代码如下:

java 复制代码
public class Test02 {
    public static void main (String[] args) {
        User user = new User();
        System.out.println("结果为============");
        System.out.println(user==null);
    }
}
class User1{
    String name;
    String sex;
}


结果为============
false

对象里的属性没有赋值也为null。

那么我们要如何让对象==null呢?很简单就是只声明而不去初始化即可。

代码如下:

java 复制代码
public class Test01 {
    public static void main (String[] args) {
     User.Test();



    }
}
class User{
    String name=null;
    String sex;
    static User user;
    static void Test(){
        System.out.println("结果=============");
        System.out.println(user==null);
    }
}

结果=============
true
相关推荐
骇客野人1 分钟前
SpringBoot电商购物车、结算、下单、库存方案设计与落地实施步骤
java·spring boot·后端
凤山老林16 分钟前
高可用分布式任务调度架构:Spring Boot 集成 PowerJob 实战指南
spring boot·分布式·架构
Cache技术分享21 分钟前
517. Java 方法句柄 - 方法句柄 vs 反射 API
前端·后端
哪 吒21 分钟前
华为OD机试 - 云服务安全策略最优选择 - 深度优先搜索DFS(Java 新系统 200分)
java·华为od·深度优先
拒绝内耗。23 分钟前
程序员学架构(一):一张图看懂 Java 后端架构:一个请求怎样从手机到数据库?
java·智能手机·架构
棣廷24 分钟前
初识Python面向对象
java·开发语言
用户31268748772029 分钟前
ThreadLocal 到底会不会内存泄漏?源码级拆解 + 线程池陷阱
java
珍珠先生32 分钟前
P11 · MySQL 驱动版本过旧:Client does not support authentication protocol
java
~木雨41 分钟前
Java 并发编程架构全景:并发层的五域设计 —— 线程模型、线程池隔离、并发安全到问题治理(全体系汇总)
java·安全·架构·线程池·并发编程·高并发架构
极小狐1 小时前
从复制粘贴到可复用组件:极狐GitLab CI/CD 组件目录实战
java·ci/cd·gitlab·devops·组件化