Java Lombok @Data @Builder

6990 단어 자바
상용 lombok 주해
@ EqualsAndHashCode: equals () 방법 과 hashCode () 방법 을 실현 합 니 다 @ ToString: toString () 방법 을 실현 합 니 다 @ Data: 클래스 에 설명 합 니 다.모든 속성 을 가 진 getting 과 setting 방법 을 제공 합 니 다. 그 밖 에 equals, canEqual, hashCode, toString 방법 @ Setter: 속성 에 주석 을 달 았 습 니 다.속성 에 setting 방법 을 제공 합 니 다 @ Getter: 속성 에 설명 합 니 다.속성 에 getting 방법 을 제공 합 니 다 @ Log4j: 클래스 에 설명 합 니 다.클래스 에 log 라 는 속성 을 제공 하 는 log4j 로그 대상 @ NoArgs Constructor: 클래스 에 설명 합 니 다.클래스 에 인삼 이 없 는 구조 방법 을 제공 합 니 다 @ AllArgs Constructor: 클래스 에 주석 을 달 수 있 습 니 다.클래스 에 전 삼 구조 방법 을 제공 합 니 다 @ Cleanup: 흐름 닫 기 @ Synchronized: 대상 동기 화 @ SneakyThrows: 이상 던 지기
@Data
lombok 을 사용 하지 않 는 프로젝트
public class Person {

 private String id;
 private String name;
 private String identity;
 private Logger log = Logger.getLogger(Person.class);
 public Person() {
   }
 public Person(String id, String name, String identity) {
      this.id   = id;
      this.name = name;
      this.identity = identity;
  }    
 public String getId() {
       return id;
   } 
 public String getName() {
           return name;
   }

 public String getIdentity() {
     return identity;
  }    
 public void setId(String id) {
      this.id = id;
  }

  public void setName(String name) {
    this.name = name;
  }

  public void setIdentity(String identity) {
      this.identity = identity;
  }
}

lombok 프로젝트 사용 하기
 @Data
 @Log4j
 @NoArgsConstructor
 @AllArgsConstructor
 public class Person {
 private String id;
 private String name;
 private String identity;
}

위의 두 자바 류 는 작용 적 으로 볼 때 그들의 효 과 는 같 습 니 다. 비교 해 보면 매우 뚜렷 합 니 다. lombok 을 사용 하 는 것 은 매우 간결 해 야 합 니 다.
 <dependency>
   <groupId>org.projectlombokgroupId>
   <artifactId>lombokartifactId>
 dependency>

@Builder
lombok 을 사용 하지 않 는 프로젝트
public class Example {
        private T foo;
        private final String bar;

        private Example(T foo, String bar) {
                this.foo = foo;
                this.bar = bar;
        }

        public static  ExampleBuilder builder() {
                return new ExampleBuilder();
        }

        public static class ExampleBuilder {
                private T foo;
                private String bar;

                private ExampleBuilder() {}

                public ExampleBuilder foo(T foo) {
                        this.foo = foo;
                        return this;
                }

                public ExampleBuilder bar(String bar) {
                        this.bar = bar;
                        return this;
                }

                @java.lang.Override 
                public String toString() {
                        return "ExampleBuilder(foo = " + foo + ", bar = " + bar + ")";
                }

                public Example build() {
                        return new Example(foo, bar);
                }
        }
 }

lombok 을 사용 하 는 프로젝트 guava 16.0.1
@Builder
 public class Example {
        private int foo;
        private final String bar;
 }

인 스 턴 스 를 만 듭 니 다. 속성 은 Example. builder (). foo (1). bar ("test"). build () 를 따로 설정 할 필요 가 없습니다.
참고:http://projectlombok.org/features/index. http://blog.csdn.net/hack8/article/details/23790579 http://blog.csdn.net/ethanq/article/details/7185610 [builder 모드 디자인]

좋은 웹페이지 즐겨찾기