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
相关推荐
PPPPickup1 分钟前
深信服公司---java实习生后端一二面询问
java·后端·ai
架构师沉默2 分钟前
为什么很多大厂 API 不再使用 PUT 和 DELETE?
java·后端·架构
回家路上绕了弯9 分钟前
Claude Code Agent Team 全解析:AI 集群协作,重构代码开发新范式
人工智能·分布式·后端
YDS82914 分钟前
SpringCloud —— Elasticsearch的DSL查询
java·elasticsearch·搜索引擎·spring cloud
亚马逊云开发者20 分钟前
你的 AI Agent 在裸奔吗?四层防护方案,从权限到审计一次讲透
java
爱吃山竹的大肚肚25 分钟前
RocketMQ 4.x + Spring Boot 生产级集成方案(完整笔记)
spring boot·rocketmq·java-rocketmq
意疏32 分钟前
openJiuwen实战:用AsyncCallbackFramework为Agent增强器添加可观测性
java·服务器·前端
马士兵教育32 分钟前
2026年IT行业基本预测!计算机专业学生就业编程语言Java/C/C++/Python该如何选择?
java·开发语言·c++·人工智能·python·面试·职场和发展
Book思议-41 分钟前
顺序表和链表核心差异与优缺点详解
java·数据结构·链表
树獭叔叔1 小时前
扩散模型完全指南:从直觉到数学的深度解析
后端·aigc·openai