添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.annotation.Nonnull; import javax.annotation.meta.TypeQualifierNickname; @Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Nonnull @TypeQualifierNickname public @interface NonNull {
package org.springframework.lang;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.annotation.Nonnull;
import javax.annotation.meta.TypeQualifierNickname;
import javax.annotation.meta.When;
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Nonnull(
    when = When.MAYBE
@TypeQualifierNickname
public @interface Nullable {

@Nonnull、@Nullable( JSR305引入)可以用在方法、参数、变量上。@Nonnull表示不可以为Null,@Nullable表示可以为Null。想在加了@Nonnull后编码传入Null时有非空警告,必须有FindBugs插件配合,或者使用IDEA;运行时不检查。

JDK中:

package com.sun.istack.internal;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Documented
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE})
public @interface NotNull {

 @NotNull( JSR303引入)可以用在方法、参数、变量、本地变量(var)中,运行时检查。

类似注解:

@Null 被注释的元素必须为null
@NotNull 被注释的元素不能为null,可以为空字符串
@AssertTrue 被注释的元素必须为true
@AssertFalse 被注释的元素必须为false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max,min) 被注释的元素的大小必须在指定的范围内。
@Digits(integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(value) 被注释的元素必须符合指定的正则表达式。
@Email 被注释的元素必须是电子邮件地址
@Length 被注释的字符串的大小必须在指定的范围内
@Range 被注释的元素必须在合适的范围内
@NotEmpty:用在集合类上,不能为null,并且长度必须大于0
@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0

参考:jianshu.com/p/32327ca2365f

空对象模式用来替代Null,和@Nonnull一样可以避免NPE(Null Point Exception)。参考:https://www.runoob.com/design-pattern/null-object-pattern.html

装饰者是结构性设计模式的一种。我们一般用这个词,是指对于本身事物没有去改变他,而是给他加了一个外框装饰,是为了这个事物。在代码的世界中,就是对于某一对象的装饰。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。它是作为现有的类的一个包装。定义: 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。 Component:可
Spring:@Nullable和@NonNull Spring的注解@Nullable,@NonNull在spring的核心包spring-core中,注解部分代码如下: @Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Nonnull( when = When.MAYBE @TypeQuali
ViewPager2已经出来很长一段时间了,但之前一直都是alpha版本,几次版本迭代中,内容细节变化也挺多,前阵子第一个正式版发布,不巧NCP爆发,在家里索性把之前的预研Demo整理整理,梳理下内容点写一篇博客,也算把预研工作正式收个尾。 首先先感谢一个我确实记不得的大兄嘚,预研的demo的前身,来自于GitHub,是我很久之前看alpha版本的使用时下载的,只下了一个zip,着实找不...
相信大家在平时的android开发中肯定用过Bitmap,而且用的还不少,那么你对它有足够的了解吗?你的使用高效吗?对于超大图片是如何处理的呢?下面就让我们一起来从基础学习一下Bitmap。 一、Bitmap是什么? 位图(Bitmap),又称栅格图或点阵图,是使用像素阵列来表示的图像。 位图(Bitmap)也可指: 一种数据结构,代表了有限域中的稠集,每一个元素至少出现一次,没有其他...
以上两个注解在程序运行的过程中不会起任何作用,只会在IDE、编译器、FindBugs检查、生成文档的时候有做提示;我使用的IDE是STS,不会做自动的检查,只有安装了FindBugs插件并运行后会做对应的提示,
@NonNull可以标注在方法、字段、参数之上,表示对应的值不可以为 @Nullable注解可以标注在方法、字段、参数之上,表示对应的值可以为 以上两个注解在程序运行的过程中不会起任何作用,只会在IDE、编译器、FindBugs检查、生成文档的时候有做提示;我使用的IDE是STS,不会做自动的检查,只有安装了FindBugs插件并运行后会做对应的提示
目录一. 为什么要用@NonNull?二. @NonNull如何使用?三. @NonNull源码四. 特别说明 一. 为什么要用@NonNull? 二. @NonNull如何使用? 三. @NonNull源码 四. 特别说明 本文已经收录在Lombok注解系列文章总览中,并继承上文中所提的特别说明。 源码地址:gitee Employee e = DB.getEmployee("Bob"); //判断雇员e是否应该今天发薪水,如果是,则发 if(e != null && e.isTimeToPay(today)) e.pay();   如果Bob对象不存在,e就是一个null,然后&&的第一个表达式会被首先求值,而仅当第一个表达式为true时才...
@NotNull 和 @Nullable作用于方法上,参数上以及字段上。 @NotNull则表示传入的值不可以为null,否则发出提示警告。 @Nullable则表示传入的值可以为null,不会发出提示警告。