Lombok에서 @Getter@Setter의 동작 설명

10440 단어 JavaLombok

입문


Lombok의 @Getter, @Setter에서 동작 검증을 한 기록이다.
Lombok의 가져오기 방법과 @Getter@Setter 이외의 주석의 사용 방법은 여기에 쓰지 않고 다른 사람이 정리한 것을 보십시오.
  • Lombok
  • Lombok 사용법 노트
  • Lombok 정보


    본론으로 들어가기 전에 Lombok을 간단히 설명해 주세요.
    Lombok은 특정 주석을 이용하여 getter, setter, toString 등을 자동으로 생성하는 라이브러리입니다.
    개발 단계에서는 POJO 개체 등의 기술량을 줄일 수 있습니다.
    현재 getter,setter를 직접 쓰는 사람은 드물지만, 자동으로 생성하기 위해 맞춤법 오류를 없앨 수 있습니다.

    실천


    그럼 바로 사용해 보세요.

    특정 필드에 getter,setter 만들기


    이 경우 setter, setter를 만들 필드에 @Getter@Setter 을 부여합니다.
    Product.java
    import lombok.Getter;
    import lombok.Setter;
    
    public class Product {
    
        @Getter
        @Setter
        private long id;
    
        @Getter
        private String name = "マウス";
    }
    
    대강을 볼 때, 필드에 지정한 getter,setter를 만드는 것을 볼 수 있습니다

    실제 행동 여부를 확인하다.
    public static void main(String[] args) {
        Product product = new Product();
        product.setId(1L);
    
        System.out.println(product.getId());
        System.out.println(product.getName());
    }
    
    콘솔
    1
    マウス
    
    너는 그것들이 모두 이렇게 정확하게 움직이는 것을 볼 수 있다.

    클래스의 모든 필드에 getter와setter를 만들려면


    방금 필드에 @Getter 또는 @Setter 을 수여했는데 이 경우 클래스에 @Getter@Setter 을 수여합니다.
    Product.java
    import lombok.Getter;
    import lombok.Setter;
    
    @Getter
    @Setter
    public class Product {
    
        private long id;
    
        private String name;
    }
    
    클래스의 모든 필드가 getter와setter를 만들었음을 볼 수 있습니다.

    동작 검증을 생략합니다.

    getter는 모든 필드이고, setter는 일부 필드입니다.


    이런 상황에서 모든 필드에 적용하고자 하는 것은 클래스이고, 일부 필드에 적용하고자 하는 것은 필드이며, 각자의 주석을 부여한다.
    Product.java
    import lombok.Getter;
    import lombok.Setter;
    
    @Getter
    public class Product {
    
        @Setter
        private long id;
    
        private String name;
    }
    

    지정한id대로setter를 만들었습니다.

    일부 필드의 getter와setter만 만들고 싶지 않으면


    클래스의 거의 모든 필드에 getter와setter를 만들고 싶지만, 일부 필드에 getter와setter를 만들고 싶지 않으면 AccessLevel.NONE 를 지정하십시오.AccessLevel getter, setter의 접근 수식자를 수정할 수 있습니다. 어떤 내용도 지정하지 않으면 public 입니다.
    Product.java
    import lombok.AccessLevel;
    import lombok.Getter;
    import lombok.Setter;
    
    @Getter
    @Setter
    public class Product {
    
        @Getter(AccessLevel.NONE)
        private long id;
    
        @Setter(AccessLevel.NONE)
        private String name;
    }
    

    지정한 AccessLevel.NONE getter, setter를 만들지 않았습니다.

    getter, setter의 동작을 기본값에서 바꾸려고 할 때


    개발 중이라면 클래스의 일부인 getter와setter의 동작만 바꾸고 싶은 상황에 직면하게 될 것입니다.
    이런 상황에서 동작을 바꾸고 싶은 필드를 실현하는 getter,setter.
    이번에는 name 필드의 getter 만 설치하세요.
    Product.java
    import lombok.Getter;
    import lombok.Setter;
    
    @Getter
    @Setter
    public class Product {
    
        private long id;
    
        private String name;
    
        public String getName() {
            return "商品名: " + name;
        }
    }
    
    대강에서 순서를 바꿨지만 있음getter을 알 수 있다.

    아까처럼 돌아가 보세요.
    public static void main(String[] args) {
        Product product = new Product();
        product.setId(1L);
        product.setName("キーボード");
    
        System.out.println(product.getId());
        System.out.println(product.getName());
    }
    
    콘솔
    1
    商品名: キーボード
    
    이렇게 스스로 실현하는 getter는

    총결산

  • 일부 필드에 getter,setter를 만들려면 필드에 주석을 부여합니다.
  • 클래스의 필드에 getter,setter를 공동으로 만들려면 클래스에 주석을 부여합니다.
  • 일부 필드의 getter, setter를 만들지 않으려면 AccessLevel.NONE 을 지정합니다.
  • getter,setter의 동작은 단순한 값으로 얻어지고 값집에서 바꾸고 싶은 상황에서 스스로 getter,setter를 만든다.
  • 참고 자료

  • @Getter and @Setter
  • Lombok - @Getter / @Setter
  • 좋은 웹페이지 즐겨찾기