码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Springboot开发时,对前端的请求参数,后端用于接受的实体类有没有必要校验为null?


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

    分析过程:

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

            初始化: RequestzbszAdd requestzbszAdd; 也就是声明一个变量
            实列化:使用new 关键字
            初始化:new  RequestzbszAdd();

            完成以上三个步骤才是把变量放入了内存,也就是有了地址。
            然后回到问题上,我们判断对象==null,无非就是怕前端传过来得的参数为空,结论就是不用这么做,要做的话就是针对于对象里的属性来判断是否为null.因为只要对象初始化以后,无论对象里的属性有没有赋值,都不可能为null。代码如下:
            

    1. public class Test02 {
    2. public static void main (String[] args) {
    3. User user = new User();
    4. System.out.println("结果为============");
    5. System.out.println(user==null);
    6. }
    7. }
    8. class User1{
    9. String name;
    10. String sex;
    11. }
    12. 结果为============
    13. false

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

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

    1. public class Test01 {
    2. public static void main (String[] args) {
    3. User.Test();
    4. }
    5. }
    6. class User{
    7. String name=null;
    8. String sex;
    9. static User user;
    10. static void Test(){
    11. System.out.println("结果=============");
    12. System.out.println(user==null);
    13. }
    14. }
    15. 结果=============
    16. true


            

  • 相关阅读:
    pve关闭windows虚拟机慢
    【数据架构】什么是运营报告?
    Scanf 不安全报错问题
    C++11 数据结构7 队列的链式存储,实现,测试
    1024 云上见 · 上云挑战(ChatGPT搭建)
    【JavaScript预解析】
    PHP WebShell 免杀
    Android 中的 安全模式(safe mode)
    R语言使用dplyr包的mutate函数将dataframe数据中的两个字符串数据列合并为一个新的数据列、两个数据列的内容合并起来形成一个新的数据列
    蓝桥杯每日一题2023.10.11
  • 原文地址:https://blog.csdn.net/weixin_57137447/article/details/132734776
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号