Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- AliasFor
- java hashCode
- java 비동기처리
- vanilla js image slider
- SpringBootApplication
- Java Wrapper Class
- github action
- java CompletableFuture
- Java
- github ec2 deploy
- javascript image slider
- AWS Codedeploy
- list remove
- stream groupingby
- github CI
- kotest
- hashcode override
- 코드포스
- c++ 빌드
- Java lombok
- lombok Builder
- Spring Aspect
- github action codedeploy
- equals override
- Github action deploy
- github CI/CD
- image slider
- equals
- java stream api
- github deploy
Archives
- Today
- Total
기록창고
@Lombok 생성자가 2개에 builder 적용하기 본문
한 객체를 만들 때, 두가지 이상 생성자가 있을 수 있다.
public class Something {
int A;
int B;
int C;
public Something() {}
@Builder
public Something(int A, int B, int C) {
this.A = A;
this.B = B;
this.C = C;
}
@Builder
public Something(SomethingDto dto) {
this.A = dto.getA();
this.B = dto.getB();
this.C = dto.getC();
}
}
이렇게 되면
Something something = Something.builder().build();
Intellij 기준 아래 A, B, C 에 대한 자동완성이 안생긴다 - dto 기준으로 만들어진다. (아마 맨 마지막 껄 가져오는듯)
Something something = Something.builder().A(A).B(B).C(C).build();
위의 코드를 작성 시 빨간줄이 나오긴 하지만 동작은 된다;;
그치만 Builder 를 구분하기 위해 builder의 이름을 바꿔주면 자동완성과 가독성이 좋아질것이다.
public class Something {
int A;
int B;
int C;
public Something() {}
@Builder
public Something(int A, int B, int C) {
this.A = A;
this.B = B;
this.C = C;
}
@Builder(builderMethodName = "dtoBuilder")
// Something something = Something.dtoBuilder().dto(dto).build();
public Something(SomethingDto dto) {
this.A = dto.getA();
this.B = dto.getB();
this.C = dto.getC();
}
}
BuildeMethodName 은 상속관계에서도 부모의 빌더를 가져오는데, 자식의 빌더를 따로 만들기 위해 사용되기도한다.
https://www.baeldung.com/lombok-builder-inheritance
작성 중 생각해보니.. 구조가 이상한 거같다...... 왜 저렇게 구성이 되야할까? 흠
'JAVA' 카테고리의 다른 글
Java Stream api 를 이용한 파싱 (0) | 2020.06.18 |
---|---|
CompletableFuture 을 이용한 비동기 요청 (0) | 2020.06.09 |
기본형과 래퍼 클래스(Wrapper Class) (0) | 2020.02.18 |
String.equals() (0) | 2020.01.19 |
Collectors GroupingBy (0) | 2020.01.16 |
Comments