[英]@NotNull javax annotation vs Intellij @NotNull annotation
[英]Add @NotNull annotation to all the arguments in IntelliJ
對於具有多個參數的方法,例如此構造函數:
public Chron ( UUID id , UUID trackId , Instant whenCreated , Instant whenLastModified , Instant start , Instant stop , String summary , String notes )
…在IntelliJ 2019.2中編輯源代碼時,是否可以用@NotNull
批注標記所有這些參數? 重復粘貼似乎很愚蠢。
您是否按照這里的說明嘗試過@ParametersAreNonnullByDefault
。
package-info.java
文件中包級別的用法示例。
@ParametersAreNonnullByDefault
package com.example.acme.backend.data;
import javax.annotation.ParametersAreNonnullByDefault;
要使用此批注,請添加jsr305
庫,該庫是Google Code FindBugs項目的一部分。 參見另一個問題, JSR 305的狀態是什么? 。
<!-- https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305 -->
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>
您可以在包級別使用注釋。 為此,您必須使用以下命令創建package-info.java文件:
@NonnullByDefault
package package.name;
並將注釋定義為:
import javax.annotation.Nonnull;
import javax.annotation.meta.TypeQualifierDefault;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Documented
@Nonnull
TypeQualifierDefault(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface NonnullByDefault { }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.