어노테이션 프로세서 정리하기
Last updated
Was this helpful?
Last updated
Was this helpful?
애노테이션 프로세서는 소스코드 레벨에서 소스코드에 붙은 에노테이션을 이용하여 컴파일러가 컴파일 하는 중에 새로운 소스코드를 생성하거나 기존의 소스코드를 바꿀 수 있는 기능이다.
Lombok
: java.util.ServiceLoader 용 파일 생성 유틸리티
오버라이드 대상이 아닌 매소드에 붙였을 때에는 컴파일 에러가 난다.
컴파일 타임에 dependency injection 을 제공해주는 라이브러리
Android Library
: @BindView - 뷰 아이디와 에노테이션 붙인 필드를 바인딩해준다.
: 특정 URI 링크를 Activity 로 연결할 때 사용된다.
장점
런타임 비용이 제로이다.
컴파일 할 때, 이미 뭔가 조작된 상태이다. 따라서 런타임 시에는 추가되는 비용이 없다.
단점
합법적(?)인 public api 가 없다.
lombok 처럼 해킹을 통해 소스코드를 변경하는 방법밖에는 없다. (논란)