ダイヤモンドオペレータ内部のJavaパスクラス変数

アルバート:

私は、Javaプロジェクトに疑問を持っています:

public class example {

   public Data getData() {
        List<Users> users = usersService.findByClinicId(id);
        Type targetListType = new TypeToken<List<UserDTO>>() {}.getType();
        List<UserDTO> usersDTO = modelMapper.map(users, targetListType);

        List<Personas> profesionales = personasService.findProfesionalsByClinicId(id);
        targetListType = new TypeToken<List<PersonaDTO>>() {}.getType();
        List<PersonaDTO> profesionalesDTO = modelMapper.map(profesionales, targetListType);

        List<Personas> auxiliares = personasService.findAuxiliarsByClinicId(id);
        targetListType = new TypeToken<List<PersonaDTO>>() {}.getType();
        List<PersonaDTO> auxiliaresDTO = modelMapper.map(auxiliares, targetListType);

        List<Prescripciones> prescripciones = prescripcionesService.findProfesionalsByClinicId(id);
        targetListType = new TypeToken<List<PrescriptionNameDTO>>() {}.getType();
        List<PrescriptionNameDTO> prescripcionesDTO = modelMapper.map(prescripciones, targetListType);

       profesionales = entityToDTO(PersonaDTO.class, profesionales);

    ...
   }

    private <T> List<T> entityToDTO(Class<T> clazz, List<T> list) {
        Type targetListType = new TypeToken<List<clazz>>() {}.getType();
        List<PersonaDTO> auxiliaresDTO = modelMapper.map(list, targetListType);

    }
}

アイデアは、のコード減少させることにあるgetData使用して関数entityToDTOの機能を。

私が持っている問題は、次のとおりです。

  • この方法ではentityToDTO、私がTypeToken最初のパラメータには、私がしたいことリストの種類を渡したいが、それはclazzがクラス名を持つ変数でリストを、受け付けません。

一覧ダイヤモンド演算子の内側に、私が使用したいクラスの型の変数を渡す方法はありますか?

UPDATE:アイデアは行数減らすことにあるgetData機能を。

hasnae:

あなたは以下の通りごentityToDTO方法を更新することができます。

public static <D, T> List<D> entityToDTO(final Collection<T> sourceList, Class<D> destinationCLass) {
        if (Objects.isNull(sourceList)) {
            return null;
        }
        return sourceList.stream().map(entity -> modelMapper.map(entity, destinationCLass))
            .collect(Collectors.toList());

   }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=224531&siteId=1
おすすめ