본문 바로가기
반응형

개발/Java18

[Lombok] @Data / @ToString / @EqualsAndHashCode / @Getter / @Setter / @RequiredArgsConstructor @Data 아래 5가지 롬복 어노테이션을 축약한 어노테이션 @ToString, @EqualsAndHashCode, @Getter(모든 필드) / @Setter (final 아닌 모든 필드), @RequiredArgsConstructor @ToString toStrig() 메서드를 자동으로 생성해줌. 클래스이름과 필드를 콤마로 구분해서 문자열로 만들어준다 # 지원하는 configuration - includeFieldNames = [true | false] (default: true) fieldName = fieldValue - doNotUseGetters= [true | false] (default: false) true : getter를 이용하지 않고 field에 직접 접근해서 toString() 생성.. 2022. 1. 20.
[Java] LocalDate, ChronoUnit으로 날짜 간격 구하기(31일 간격으로 나누기) 1. ChronoUnit 을 이용하여 날짜 간격을 구한다 ChronoUnit.DAYS.between(from,to); - ChronoUnit은 TemporalUnit 인터페이스를 구현한 Enum 클래스 DAYS, HOURS, NANOS, MICROS 등등 다양한 시간 단위가 있고, 외부에서 사용할 수 있는 between, getDuration, isDurationEstimated 등 다양한 API를 제공한다 [참고] https://docs.oracle.com/javase/10/docs/api/java/time/temporal/ChronoUnit.html ChronoUnit (Java SE 10 & JDK 10 ) Unit that represents the concept of a day. For the .. 2022. 1. 17.
[Java] 체크예외, 언체크예외 초간단 정리 체크 예외 (Checked Exception) 언체크 예외 (Uncheked Exception) 예외 발생 이유 외부 영향, 사용자의 실수 프로그래머의 실수 예외 처리 여부 예외 처리 필수 try catch - 해당 메소드에서 처리 throw -호출한 곳에서 처리하도록 상위로 넘김 예외 처리 필수 아님 예외 확인 시점 컴파일 시점 에러 처리를 해주지않을 경우 컴파일 시점에 에러표시 런타임 시점 컴파일 시 문제 없음 예외 종류 * Excpetion 하위 예외 중 RuntimeException 제외 FileNotFoundException ClassNotFoundException * RuntimeException 하위 예외 NullPointerException ArrayIndexOutOfBoundsExcep.. 2022. 1. 11.
[Java] equals 메서드 equals 메서드 재정의에는 함정이 많다! 아래 상황 중 하나에 해당한다면 재정의 하지 않는 것이 최선 각 인스턴스가 본질적으로 고유하다 인스턴스의 논리적 동치성을 검사할 일이 없다 상위 클래스에서 재정의한 equals가 하위 클래스에도 딱 들어맞는다 클래스가 private이거나 package-private이고 equals 메서드를 호출할 일이 없다 equals 메서드는 동치 관계를 구현하며, 다음을 만족한다 반사성(reflexivity) - null이 아닌 모든 참조 값 x에 대해 x.equals(x) 는 true 대칭성(symmetry) - null이 아닌 모든 참조 값 x,y에 대해 x.equals(y)가 true 면 y.equals(x) 도 true 추이성(transitivity) - null이.. 2021. 6. 15.
[이펙티브 자바] 정적 팩터리 메서드 명명 방식 from 매개변수를 하나 받아서 해당 타입의 인스턴스를 반환하는 형변환 메서드 Date d = Date.from(instant); of 여러 매개변수를 받아 적합한 타입의 인스턴스를 반환하는 집계 메서드 Set faceCards = EnumSet.of(JACK,QUEEN,KING); valueOf from과 of의 더 자세한 버전 BigInteger prime = BigInteger.valueOf(Integer.MAX_VALUE); instance 혹은 getInstance (매개변수를 받는다면) 매개변수로 명시한 인스턴스를 반환하지만, 같은 인스턴스임을 보장하지는 않는다 StackWalker luke = StackWalker.getInstance(options); create 혹은 newInstance.. 2021. 4. 27.
[Lombok + Builder pattern + generic] 롬복 빌더패턴에서 generic 사용하기 * 리스트에서 페이지 조회시 공통으로 반환하는 것들이 있어서 PageDto를 Generic Type을 이용해서 만들어봤다 @Getter @Setter @Builder public class PageDto { public PageDto() {} private T contents; private boolean hasContent; private boolean hasNext; private long totalCount; } * 롬복 빌더패턴을 사용하려면... PageDto userList = PageDto.builder() .contents(userList) .hasContent(page.hasContent()) .hasNext(page.hasNext()) .totalCount(page.getTotalElem.. 2021. 4. 19.