Onur Arı :
I have created a custom validator. Intellij is giving "unused" warning for message
, groups
and payload
fields. However, these should be defined and are used by 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 {};
}
Is there a way to get rid of this warning? I am not allowed to suppress warnings.
Michael :
You could add a unit test which checks those fields. It would not be a very useful test, but it would at least shut IntelliJ up without suppressing the warning.
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());
}
}
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=299884&siteId=1