簡體   English   中英

將@NotNull批注添加到IntelliJ中的所有參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM