I have such code:
public abstract class IsValidator<M> implements HasValidation.Validator {
public final ValidationResult validate(ValidatorBase<M> validator, M model) {
ValidationResult result = validator.validate(model);
return new ValidationResult(result.isValid(), result.getErrorMessage());
}
}
This is validator abstraction used for each validation. This method needs to be final, as it can not be changed. It is why I use abstract class instead of interface.
But sonar points me this as an issue:
Abstract classes without fields should be converted to interfaces
Code smell
Minor
java:S1610
https://rules.sonarsource.com/java/RSPEC-1610
I tried with interface, but default method can not be finalized.
Am I missing something? Can You help?