У меня есть базовый класс ClassA:
@Getter
@Setter
public ClassA {
private String version;
}
Некоторые классы расширяют classA, например
@Data
public class B extends classA {
private String a;
private String b;
}
У меня есть интерфейс со следующим методом:
<T extends ClassA> T read(SomeOtherObject object, Class<T> clazz);
Теперь в реализации интерфейса
<T extends ClassA> T read(SomeOtherObject object, Class<T> clazz) {
T obj = callSomeMethod(); //Call SomeMethod will return an object which fills in properties of T and doesn't know how to set value of version
obj.setVersion("123");
return obj;
}
Как мне убедиться, что каждая реализация этого интерфейса устанавливает непустое значение версии в ClassA?