Как я могу удалить предупреждения IntelliJ для элементов аннотации, которые, по его мнению, не используются? - PullRequest
0 голосов
/ 18 марта 2020

Я создал собственный валидатор. Intellij выдает «неиспользованное» предупреждение для полей message, groups и payload. Тем не менее, они должны быть определены и используются Spring.

@Documented
@Constraint(validatedBy = PasswordConstraintValidator.class)
@Target({FIELD, ANNOTATION_TYPE})
@Retention(RUNTIME)
public @interface ValidPassword {
    String message() default "Invalid Password.";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

Есть ли способ избавиться от этого предупреждения? Мне не разрешено подавлять предупреждения.

1 Ответ

1 голос
/ 18 марта 2020

Вы можете добавить модульный тест, который проверяет эти поля. Это не будет очень полезный тест, но он по крайней мере закроет IntelliJ без подавления предупреждения.

public class ValidPasswordTest
{
    @ValidPassword
    private final String fakeField = "";

    @Test
    public void checkDefaultValues() throws NoSuchFieldException
    {
        final ValidPassword validPassword = Arrays.stream(ValidPasswordTest.class.getDeclaredField("fakeField").getAnnotations())
            .filter(ValidPassword.class::isInstance)
            .map(ValidPassword.class::cast)
            .findFirst()
            .orElseThrow(RuntimeException::new);

        assertEquals("Invalid Password.", validPassword.message());
        assertArrayEquals(new Class[]{}, validPassword.groups());
        assertArrayEquals(new Class[]{}, validPassword.payload());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...