プージャバーマ:
マイAssignedPropertiesDTOクラスは次のとおりです。
@Data
@Builder
@AllArgsConstructor
public class AssignedPropertiesDTO {
@JsonProperty("hotel_id")
private Long hotelId;
@JsonProperty("oyo_id")
private String oyoId;
@JsonProperty("drn")
private Integer dsrn;
@JsonProperty("is_sold_out")
private Boolean isSoldOut;
@JsonProperty("is_purged")
private Boolean isPurged;
AssignedPropertiesDTO() {
this.isSoldOut = false;
this.isPurged = false;
}
}
私はfalseにisSoldOutとisPurgedを設定する必要があります。私は、デフォルトコンストラクタをした理由です。しかし、私はクラスのフィールドを設定し、どこかにちょうどゲッター/セッターを使用してプロパティを設定するためのビルダーを()を使用しています。
AssignedPropertiesDTO matchingObject = assignedPropertiesDTOS.stream()
.filter(assignedPropertiesDTO ->
assignedPropertiesDTO.getHotelId().equals(Long.valueOf(entry.getKey())))
.findFirst().orElse(null);
if (matchingObject == null) {
assignedPropertiesDTOS.add(AssignedPropertiesDTO
.builder().hotelId(Long.valueOf(entry.getKey())).dsrn(count).build());
} else {
matchingObject.setDsrn(count);
}
私の要件は、いずれかのTrue / Falseのではなく、NULLにIspurged / IsSoldOutを設定することです。
[ {
"hotel_id": 45693,
"oyo_id": "GOA2161",
"drn": null,
"is_sold_out": null,
"is_purged": null
},
{
"hotel_id": 45693,
"oyo_id": "GOA2161",
"drn": null,
"is_sold_out": true,
"is_purged": false
} ]
私はこれを行うことができますどのように私を導いてください。
rzwitserloot:
@Builder
あなたのためのすべての-引数のコンストラクタになります。それはisSoldOutとisPurgedに必要なデフォルト以外の値を知っていません。あなたは使用することができ@Builder.Default
、このための機能を:@Builder.Default private Boolean isSoldOut = false;
たとえば。
代わりにちょうどそれらをbブール値を小文字にし、「偽」は今、自然がデフォルトです。それがすべてではオプションだ場合、それははるかにここに最適なソリューションです。
あなたの最後のオプションはすべて、引数を自分でコンストラクタにすることです。