@Nullable 注解的详细用法

这篇具有很好参考价值的文章主要介绍了@Nullable 注解的详细用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

最近发现之前写的代码生成器(entity、dao、service、controller、vue) 有点bug,在Service层判断空的时候,少了一部分条件。所以补充上了,随后又同事问我在代码中发下了@Nullable注解不知道怎么用?脑子是个好东西,可以审核没带啊!哪有广告?

起初,以为这么简单的一个常用注解还不了解吗?

用法

@Nullable可以用在方法、属性、参数上。对应的意思分别如下:

方法:表示返回值可以是空

属性:表示属性值可以是空

参数:表示参数值可以是空

用在方法上

方法的返回值可以是为空,具体的用法如下方代码所示:

@Nullable
public ApiResult upload(@NotNull(message = "上传参数不能为空") @RequestParam("file") MultipartFile[] file) throws BaseException {
    ApiResult apiResult = new ApiResult();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
    String format = simpleDateFormat.format(new Date());
    String realPath = filePath + File.separator + format;
    String returnPath = format;
    File targetFile = new File(realPath);
    if (!targetFile.exists()){
        targetFile.mkdirs();
    }
}

将注解用在方法商法,就可以表示这个方法的返回值可以是空。就是这么简单。

用在参数上

参数可以是为空,具体的用法如下方代码所示:

private void checkUser(String fansid, String openid, @Nullable String op) throws BaseException{
    Consumer consumer = consumerService.selectByPrimaryKey(fansid);
    if (consumer == null) {
        throw new ParamException("用户不存在");
    }
    Consumer consumer1 = consumerService.selectByPrimaryKey(openid);
    if(consumer1 == null){
        throw new ParamException("被关注者信息异常");
    }
}

用在参数上的方法也很简单,就是在参数前方加一个@Nullable注解,这样标识为这个参数可以为空。

用在属性上

属性可以为空,具体参考代码如下:

@Validated
@RestController
@RequestMapping("miniapi/follow")
public class FollowController extends BaseController {
    @Nullable
    private String isTime;
    
    @Autowired
    private FollowService followService;
    @Autowired
    private ConsumerService consumerService;
    private Logger logger = LoggerFactory.getLogger(this.getClass());
  }  

从上方我们解决的部分代码可以看出,这部分代码中在属性isTime上方标记了@Nullable注解,标识这个isTime属性可以为空。

以上,就是我们自己在使用的中的真实案例,那在我们平常引用第三方包结构中有没有引用案例呢?

Spring工具包源码中的使用案例

org.springframework.util.StringUtils中的判断空方法中用到了此方法。

就是我们所属的用在参数上面的示例:

public static boolean isEmpty(@Nullable Object str) {
   return (str == null || "".equals(str));
}

好了,今天关于@Nullable的使用情况闲聊到这,欢迎朋友们留言交流。

也希望大家关注我的《coder练习生》文章来源地址https://www.toymoban.com/news/detail-441800.html

到了这里,关于@Nullable 注解的详细用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Visual Studio如何打开之前已有项目(超详细)

    目录 一.第一步  二.第二步 1.打开单个项目  2.打开多个项目 请大家多多支持,一起加油呀!  点击文件——打开 分两种情况: 点击上图数字1所示项目/解决方案,找到自己保存项目的文件夹  点击进入,找到自己要打开的项目文件 点击进入,找到.sln文件打开即可   点击第

    2024年02月05日
    浏览(51)
  • 注解@RestControllerAdvice用法途

    @RestControllerAdvice 是一个组合注解,由 @ControllerAdvice 、 @ResponseBody 组成,而 @ControllerAdvice 继承了@Component,因此 @RestControllerAdvice 本质上是个 Component ,用于定义 @ExceptionHandler , @InitBinder 和 @ModelAttribute 方法,适用于所有使用 @RequestMapping 方法。 通过 @ControllerAdvice 注解可以将对

    2024年02月07日
    浏览(40)
  • C# Nullable学习

    在C#1.x,一个值类型变量是不可以被赋予null值的,否则会产生异常。 在C#2.0中,提供了Nullable类型,允许用它定义包含null值(即空值)的数据类型,这对处理数据库中包含可选字段以及很多方面都有帮助。 定义一个nullable类型,使用类型修饰符“?”; 比如定义一个整型如下

    2024年02月16日
    浏览(38)
  • MyBatis@Param注解的用法

    本人在学习mybatis的过程中遇到的一个让人不爽的bug,在查找了些相关的资料后得以解决,遂记录。 mapper 中有一方法: 测试方法: 报错信息: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \\\'name\\\' not found. Available parameters are [arg3, arg2

    2024年02月14日
    浏览(30)
  • @SpringBootApplication注解的理解——如何排除自动装配 & 分布式情况下如何自动加载 & nacos是怎么被发现的

    spring作为主流的 Java Web 开发的开源框架,是Java 世界最为成功的框架,持续不断深入认识spring框架是Java程序员不变的追求。 本篇博客介绍SpringBootApplicant注解的自动加载相关内容 其他相关的Spring博客文章列表如下: Spring基础(核心容器)——从配置文件到注解开发 创建对象

    2024年02月07日
    浏览(42)
  • lombok中@builder注解的用法

    在 Lombok 中,@Builder 注解用于简化构建器模式的使用。使用 @Builder 注解后,Lombok 会自动生成一个构建器类,用于创建带有多个属性的对象。 使用 @Builder 注解时,需要注意以下几点: 在要使用 @Builder 注解的类上添加 @Builder 注解。 需要使用 @Builder.Default 注解来指定属性的默认

    2024年02月11日
    浏览(39)
  • SpringMVC 中的常用注解和用法

    观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 电脑使用的操作系统版本为 Windows 10 目录  前言 Spring Boot Spring MVC 1. MVC 1.1 MVC 和 Spring MVC 之间的关系 2. 创建 Spring MVC 项目 创建一个 SpringMVC 项目 1. new project 2. 选择 SpringBoot 项目, 选择合适的 jdk 版本

    2024年02月09日
    浏览(45)
  • 探秘Spring中Bean的注解宝典:解读存取Bean的相关注解及用法

    将对象存储在 Spring 中,有两种注解类型可以实现: 类注解:@Controller、@Service、@Repository、@Component、@Configuration 方法注解:@Bean 如下使用@Controller存储Bean代码: 使用获取上下文的方法获取上面存储的对象 效果为 如下使用@Service存储Bean代码: 输出结果跟@Controller一样 如下使

    2024年02月16日
    浏览(43)
  • Spring 中 @Bean 注解用法大全,建议收藏!

    将对象存储在 Spring 中,有两种注解类型可以实现: 类注解: @Controller 、 @Service 、 @Repository 、 @Component 、 @Configuration 方法注解: @Bean Spring Boot 基础就不介绍了,推荐看这个实战项目: https://github.com/javastacks/spring-boot-best-practice 如下使用 @Controller 存储Bean代码: 使用获取上

    2024年02月03日
    浏览(43)
  • Spring MVC中的常用注解及其用法

    @RequestMappering可以作用在类上(类注解)、也可以作用在方法上(方法注解)。 @RequestMappering后面的括号中:双引号的值会赋值给value这个属性。只有一个属性且属性名为value时这个属性名可以省略不写。 @RequestMappering默认支持get/post请求,可以使用method属性来限制请求方式。 从请求

    2024年01月19日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包