Arthur's Blog
์์์์ @Builder ์ฌ์ฉํ๊ธฐ ๋ณธ๋ฌธ
๐ ๋ฌธ์ ์ํฉ
error: builder() in ์์๊ฐ์ฒด cannot hide builder() in ๋ถ๋ชจ๊ฐ์ฒด
๋ผ๋ ์๋ฌ๊ฐ ๋์ค๊ฒ ๋๋ค. ๊ฐ๋จํ๊ฒ ์ง์ญํ๋ฉด “์์๊ฐ์ฒด์ builder()๋ ๋ถ๋ชจ๊ฐ์ฒด์ builder()์ ์จ์ ์ ์๋ค.”๋ผ๋ ๋ง์ธ๋ฐ ์ด๊ฒ์ ํด๊ฒฐํ๋ ค๋ฉด ์์์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ์ด ์์ด์ผํ๋ค.
๐ดโ ๏ธ ์์ธ
Builder ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ฉด ์ปดํ์ผ ์ ํด๋น ํด๋์ค์ Builder ํด๋์ค์ ๋ฉ์๋๊ฐ ์๊ธฐ๊ฒ ๋๋ค.
์์ ๊ฐ์ฒด์์ ๋์ผํ๊ฒ Builder ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด builder() ๋ฉ์๋๊ฐ ์ค๋ณต๋๊ฒ ๋๋ฉด์ error๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
โป ํด๊ฒฐ๋ฒ
์์๊ฐ์ฒด ๋๋ ๋ถ๋ชจ๊ฐ์ฒด์์ @Builder์ด๋ ธํ ์ด์ ์ property์ค ํ๋์ธ builderMethodName๋ฅผ ์ค์ ํด์ฃผ๋ฉด ๋๋ค. ๋ฌผ๋ก ์ฌ์ฉํ ๋๋ builderMethodName์์ ์ง์ ํด์ค method ๋ช ์ ์ฌ์ฉํด์ ํธ์ถํด์ผ ํ๋ค.
๐ ์์
@Getter
@Builder
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class FeedResponse {
private Long feedId;
private String title;
private String description;
private Integer price;
private List<String> tags;
private String photo;
private LocalDateTime lastModifyDate;
private boolean like;
private Integer count;
public void setLike(boolean value) {
this.like = value;
}
}
@Getter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class WriteFeedResponse extends FeedResponse {
private Integer headCount;
private LocalDate date;
private boolean isUsedItem;
@Builder(builderMethodName = "writeFeedResponseBuilder")
public WriteFeedResponse(Long feedId, String title, String description,
Integer price, List<String> tags, String photo,
LocalDateTime lastModifyDate, boolean like, Integer count,
Integer headCount, LocalDate date, boolean isUsedItem) {
super(feedId, title, description, price,
tags, photo, lastModifyDate, like, count);
this.headCount = headCount;
this.date = date;
this.isUsedItem = isUsedItem;
}
public void setGroupFeed(Integer headCount, LocalDate date) {
this.headCount = headCount;
this.date = date;
}
public void setLike(boolean value) {
super.setLike(value);
}
}
์๋๋ ์ค์ ๋ฉ์๋ ํธ์ถ ์ ์ฌ์ฉ๋ฒ์ด๋ค.
WriteFeedResponse feedResponse =
WriteFeedResponse.writeFeedResponseBuilder()
.build();
'Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JUnit ํ ์คํธ๋ Thread๋ฅผ ์ฌ์ฌ์ฉํ๋ค. (1) | 2024.06.06 |
---|---|
Random๊ณผ SecureRandom ์ฐจ์ด (0) | 2023.06.29 |
๋์์ฑ ๋ฌธ์ ๋ฅผ ์ ์ดํ๋ ๋ฐฉ๋ฒ (0) | 2023.06.28 |