У меня есть следующий код:Как я могу проверить аргументы в методе из интерфейса, не нарушая DRY принцип
public interface Person {
/***
*@Throws Exception x must be greater than 0 ****/
setAge(int x);
}
public class Man implements Person {
setAge(int x) {
if(x <= 0) thrown new Exception("x <= ");
}
}
Я нарушил DRY принцип, потому что повторить проверку в каждой реализации и документации повторы это тоже. Каков наилучший способ проверить аргументы в этой ситуации?
Вы правы, но для меня это не так. Методы по умолчанию были действительно предназначены для поддержки функциональных интерфейсов, так как у вас может быть только один метод, который не имел реализации в функциональном интерфейсе. Мое чувство кишки состоит в том, чтобы идти с абстрактным классом, так как он передает намерение более четкое (и если это единственный метод, который у вас есть в вашем интерфейсе, нет никакой выгоды для того, чтобы он был интерфейсом). – Makoto