Java 布尔默认值映射结构
我试图使用MapStruct为布尔字段设置defaultValue,但生成的代码只是忽略它 我的代码:Java 布尔默认值映射结构,java,mapstruct,Java,Mapstruct,我试图使用MapStruct为布尔字段设置defaultValue,但生成的代码只是忽略它 我的代码: public class CreateEventRequest { @NotNull @JsonProperty private Boolean isPrivate; @JsonProperty private Boolean friendCanInviteFriends; @JsonProperty private boolean
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;
}
}
如您所见,我尝试过使用primitive/non primitive类型,但它只是忽略了defaultValue
我是不是遗漏了什么
谢谢 问题在于,源对象中getter方法的返回类型始终是基元,不能为null,您需要返回
布尔值
MapStruct不支持需要反射的直接私有字段访问 问题在于,源对象中getter方法的返回类型始终是基元,不能为null,您需要返回
布尔值
MapStruct不支持需要反射的直接私有字段访问
CreateEventRequest
中的getter是什么样子的?只是用getter编辑的!CreateEventRequest
中的getter是什么样子的?只是用getter编辑的!