【发布时间】:2020-05-30 09:39:23
【问题描述】:
我正在尝试使用 MapStruct 为布尔字段设置默认值,但生成的代码会忽略它。
我的代码:
public class CreateEventRequest {
@NotNull
@JsonProperty
private Boolean isPrivate;
@JsonProperty
private Boolean friendCanInviteFriends;
@JsonProperty
private boolean showGuestList;
public boolean isPrivate() {
return isPrivate;
}
public String getDescription() {
return description;
}
public boolean isFriendCanInviteFriends() {
return friendCanInviteFriends;
}
public boolean isShowGuestList() {
return showGuestList;
}
}
我的映射器:
@Mapper(componentModel = "spring")
public interface CreateEventRequestMapper {
@Mapping(target = "showGuestList", source = "showGuestList", defaultExpression = "java(true)")
@Mapping(target = "friendCanInviteFriends", source = "friendCanInviteFriends", defaultValue = "true")
Event map(CreateEventRequest request);
}
生成的代码:
public class CreateEventRequestMapperImpl implements CreateEventRequestMapper {
@Override
public Event map(CreateEventRequest request) {
if ( request == null ) {
return null;
}
Event event = new Event();
event.setShowGuestList( request.isShowGuestList() );
event.setFriendCanInviteFriends( request.isFriendCanInviteFriends() );
event.setPrivate( request.isPrivate() );
return event;
}
}
如您所见,我尝试使用原始/非原始类型,但它只是忽略了 defaultValue。
我错过了什么吗?
谢谢!
【问题讨论】:
-
CreateEventRequest中的 getter 是什么样的? -
刚刚用 getter 编辑过!