Я хочу обобщить некоторый код, но застрял в проблеме, которую, я думаю, нужно решить с помощью отражения.
В моих методах обслуживания я преобразую из dto в entity и наоборот. Поэтому в каждом классе обслуживания есть метод, подобный этому
private LicenseDTO convertToDto(LicenseEntity entity) {
LicenseDTO dto = modelMapper.map(entity, LicenseDTO.class);
return dto;
}
Чтобы уменьшить дублирование, я переместил это в абстрактный класс, и там я хочу реализовать это. S - мой класс сущности, а T - мой. Modelmapper требует тип класса S, но как я могу извлечь это с помощью отражения?
@SuppressWarnings("unchecked")
protected S convertToEntity(T dto){
Class<S> typeOfS = null;
typeOfS = (Class<S>) getClass();
Method[] methods = typeOfS.getDeclaredMethods();
return modelMapper.map(dto, typeOfS);
}