MapStruct: Как преобразовать String в byte [] с помощью mapstruct - PullRequest
2 голосов
/ 26 февраля 2020

В моем классе dto:

private String password;

В классе моей модели:

private byte[] password;

Я хочу преобразовать строку в байт [] с помощью mapStruct. Может ли кто-нибудь помочь

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 27 февраля 2020

Лучше всего будет предоставить метод по умолчанию для отображения между String и byte[].

Например:

@Mapper
public MyMapper {

    Model fromDto(Dto dto);

    default byte[] toBytes(String string) {
        return string != null ? string.getBytes() : null;
    }

}

С этим у вас будет MapStruct do automati c для всех остальных полей от Dto до Model и оставьте отображение между String и byte[] для метода toBytes.

0 голосов
/ 26 февраля 2020

Предположим, у вас есть эти классы.

public class Source {

  private String password;

  //getters and setters

}

public class Destination {

  private byte[] password;

  //getters and setters

}

Вы можете создать собственный картограф.

@Mapper
public abstract class MyMapper {

  public Destination sourceToDest(Source source) {
    Destination dest = new Destination();
    dest.setPassword(source.getPassword().getBytes());
    return dest;
  }
}

Тогда

MyMapperImpl mapper = new MyMapperImpl();
Destination dest = mapper.sourceToDest(source);
...