2011-11-03 2 views
80

롬복에서 데이터 클래스를 사용하고 싶습니다. 12 개의 필드가 있기 때문에 나는 모든 세터와 게터를 생성하기 위해 @Data으로 주석을 달았습니다. 그러나 접근자를 구현하기를 원하지 않는 특별한 필드가 하나 있습니다.롬복에서 Setter/Getter를 하나만 생략하면

롬복은이 필드를 어떻게 생략합니까?

답변

162

@Getter@Setter 주석에 액세스 수준을 전달할 수 있습니다. getter 또는 setter를 보호하거나 비공개로 만들 때 유용합니다. 또한 기본값을 대체하는 데 사용할 수 있습니다.

@Data을 사용하면 기본적으로 접근 자에 대한 공개 액세스 권한이 있습니다. 이제 완전히 다음과 같이 접근을 생략 할 특별한 액세스 수준 NONE를 사용할 수 있습니다

@Getter(AccessLevel.NONE) 
@Setter(AccessLevel.NONE) 
private int mySecret; 
+0

완벽한. private 필드가 POJO이고 @Delegate()로 주석이 달린 경우, 그것은 일련의 속성을 별도의 재사용 가능한 클래스로 추출하는 데 사용될 수 있습니다. 이것은 여러 클래스에 동일한 속성 집합을 적용하는 데 유용 할 수 있습니다 (속성을 추가하기위한 일종의 혼합 속성). 예를 들어, 다양한 XML 요소의 모델링에 적용될 수있는 속성 세트를 나타내는 mixin. – xorcus

20

@Data description에 따르면 당신은 사용할 수 있습니다

모든 생성 된 getter 및 setter가 공개됩니다. 액세스 수준을 무시하려면 명시적인 @Setter 및/또는 @Getter 주석으로 필드 또는 클래스에 주석을 답니다. 이 주석 ( 을 AccessLevel.NONE과 결합하여 사용)을 사용하여 getter 및/또는 setter 생성을 모두 억제 할 수도 있습니다.

관련 문제