Как мне заставить @ParametersAreNonnullByDefault работать?

Я сделал несколько попыток получить аннотацию пакета @ParametersAreNonnullByDefault, чтобы работать для меня в проекте maven, но без успеха. Может ли кто-нибудь поделиться ссылкой на минимальный/примерный проект maven, где он настроен (или опубликовать pom.xml и package-info.java и демонстрационный класс)?

Я говорю о том, что процессор findbugs обеспечивает его для меня.

Ответы

Ответ 1

Как применить @ParametersAreNonnullByDefault

Создайте файл package-info.java в своем пакете, где вы хотите обеспечить требуемое поведение.

В этом файле выполните следующие действия:

/**
 * You should do it like this!
 */
@ParametersAreNonnullByDefault
package com.stackoverflow;

import javax.annotation.ParametersAreNonnullByDefault;

Как не применять @ParametersAreNonnullByDefault

В исходном файле Java не выполняйте следующие действия:

/**
 * But you shouldn't do it this way!
 */
@ParametersAreNonnullByDefault
package com.stackoverflow;

import javax.annotation.ParametersAreNonnullByDefault;

public class Answer { ...

Объявление таких аннотаций неоднозначно.

Примечания

Было бы нормально применить аннотацию непосредственно к классу Answer.

package com.stackoverflow;

import javax.annotation.ParametersAreNonnullByDefault;

/**
 * You can do it like this also.
 */
@ParametersAreNonnullByDefault
public class Answer { ...

То же самое относится и к @ParametersAreNullableByDefault.