기은P
시간이 멈추는 장소
기은P
  • Programming (272)
    • 개발노트 (1)
    • FrontEnd (56)
      • ES&JS 문법 (14)
      • HTML&CSS (4)
      • React 기본 (18)
      • React 심화 (12)
      • React 이슈 (2)
      • Project 연습 (1)
      • Next.js (5)
    • Backend&Devops (33)
      • AWS (2)
      • Docker (9)
      • Jenkins (6)
      • Nginx (6)
      • Node.js (1)
      • ElasticSearch (5)
      • 프레임워크&아키텍처 (2)
      • 암호화 (0)
      • 기타 (2)
    • 알고리즘 (3)
    • C# (8)
      • WPF (8)
    • Java (51)
      • 순수 Java (18)
      • RDF&Jena (12)
      • RCP&GEF (9)
      • JMX (5)
      • JMapper (3)
      • 오류해결 (4)
    • Database (21)
      • RDBMS (9)
      • NoSQL (2)
      • TSDB (1)
      • GraphQL (1)
      • Hibernate (3)
      • 데이터베이스 이론 (4)
      • Redis (1)
    • 프로토콜 (11)
      • Netty (4)
      • gRPC (5)
      • 프로토콜 개념 (2)
    • Server (4)
      • Linux (4)
    • 2020 정보처리기사 필기 (43)
      • 목차 (1)
      • 기출문제 (1)
      • 1과목 - 소프트웨어 설계 (6)
      • 2과목 - 소프트웨어 개발 (7)
      • 3과목 - 데이터베이스 구축 (8)
      • 4과목 - 프로그래밍 언어 활용 (7)
      • 5과목 - 정보시스템 구축 관리 (10)
    • 2020 정보처리기사 실기 (31)
      • 목차 (4)
      • 기출예상문제 (19)
      • 실기요약 (8)
    • 빅데이터분석기사 필기 (4)
      • 목차 (0)
      • 필기 요약 (3)
    • 전기 공학 (1)
      • CIM (1)
    • 산업자동화시스템 (3)
      • SCADA (1)
      • OPC UA (2)
    • 디자인패턴 (1)
    • 휴지통 (0)

공지사항

  • 공지사항/포스팅 예정 항목

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
기은P

시간이 멈추는 장소

[Java] Lombok Annotation 정리
Java/순수 Java

[Java] Lombok Annotation 정리

2020. 9. 7. 18:00
반응형

Lombok Annotation 정리

 

Lombok 라이브러리에서 제공하는 Annotation 중 가장 많이 사용되는 Annotation을 정리해보았습니다.

 

@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor 
@Builder
public class User {
	private int id;
	private String name;
	private int age;
	private String address;
	
	@Setter(AccessLevel.PROTECTED)
	private int grade;
	public void setGrade(int grade) {
		this.grade = grade;
	}
}

 

@Getter : get메서드를 자동으로 정의합니다.

 

@Setter : set메서드를 자동으로 정의합니다.

 

 

 

 

 

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		User user = new User();		
		user.setName("Alt");
		user.setId(100);
		user.setAddress("Home");
		user.setGrade(80);
		user.setAge(20);		
		System.out.println(user.toString());
		
	}

}

 

@ToString : 현재 클래스 내에 정의된 멤버변수들의 값을 출력해줍니다.

출력결과

 

 

 

 

@AllArgsConstructor : 현재 클래스 내에 정의된 멤버변수 들이 모두 포함된 생성자를 정의합니다.

 

 

 

@NoArgsConstructor : 멤버변수를 갖지 않는 생성자를 정의합니다.

 

 

 

 

 

@Builder : 빌더 패턴으로 클래스를 생성합니다.

 

public class Main {

	public static void main(String[] args) {
		User buildUser = User.builder().name("Blue").id(200).address("School").grade(90).age(25).build();
		System.out.println(buildUser.toString());
	}
}

 

출력 결과

 

 

 

@RequiredArgsConstructor : 특정 매개변수만을 받는 생성자를 정의합니다. 이때 생성자에 포함시킬 매개변수 위에 @NonNull 어노테이션을 추가해야 합니다.

 

@RequiredArgsConstructor
@ToString
public class Book {
	@NonNull private String name;
	@NonNull private String author;
	@NonNull private int prise;
	private String page;
}

public static void main(String[] args) {		
		Book book = new Book("time", "jwk", 9000);
		System.out.println(book.toString());
	}

 

 

@NonNull을 추가하지 않은 page 멤버변수는 null값으로 초기화 된 것을 확인할 수 있습니다.

 

 

 

 

반응형
저작자표시 변경금지 (새창열림)

'Java > 순수 Java' 카테고리의 다른 글

[Java] Birt Project 사용방법  (0) 2021.11.04
[Java] Java Modbus 사용법(JLibModbus)  (0) 2021.02.16
[Java] Lombok Setter Custom  (0) 2020.09.07
[Java] Lombok 설치 방법  (0) 2020.09.07
[Java] 자바 코드 실행시간 측정 방법  (1) 2020.05.27
    'Java/순수 Java' 카테고리의 다른 글
    • [Java] Birt Project 사용방법
    • [Java] Java Modbus 사용법(JLibModbus)
    • [Java] Lombok Setter Custom
    • [Java] Lombok 설치 방법
    기은P
    기은P
    기은P의 블로그 일상과 개발 관련 포스팅 #React #Typescript #Next #Nest https://github.com/kimdongjang

    티스토리툴바