lombok은 멤버 필드에 대한 접근자와 설정자(Getter/Setter), 생성자 등을 자동 생성하여 Annotation을 이용하여 사용할 수 있게 해주는 라이브러리다.
Android app을 무겁지 않은 상태로 만들어 준다.
compileOnly 'org.projectlombok:lombok:1.18.12'
annotationProcessor 'org.projectlombok:lombok:1.18.12'
lombok의 annotationProcessor 선언이 Room 선언보다 위에 있어야 한다.(중요!!)
@Getter, @Setter, @ToString, @EqualsAndHashCode, @~~~ArgsConstructor, @Data
: 멤버 필드에 대한 getter/setter를 만들어 준다.
전체 멤버 필드에 Getter을 적용시키려면 class 선언 앞에 @Getter 를 쓰면 된다.
변수명을 mAge로 하고 싶은 경우 getMAge로 생성되버린다!!
이를 방지하고 싶다면 아래와 같이 @Accessors를 사용하면 된다.
위와 같이 Test 클래스에 @ToString을 달아주면 모든 멤버 필드의 저장되어 있는 값을 출력할 수 있다.
혹시 name값만을 포함시키고 싶다면 @ToString(exclude="age") 또는 @ToString(of="name") 라고 써주면 된다.
equals(Object) & hashCode() 메소드를 오버라이드한다.
클래스의 생성자를 만들어준다.
종류는 @NoArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor 3가지가 있다.
중복 사용이 가능하다.
자세한 부분은 내용이 길어 따로 포스팅을 할 예정이다.
위의 Annotation(@RequiredArgsConstructor포함)을 모두 합친 듯한 효과를 준다.
하지만 세부적인 설정을 하려면 Annotation을 각각 붙여줘야 한다.