본문 바로가기

Book87

[독서 기록] 모던 자바 인 액션 18장-21장, 함수형 프로그래밍과 자바 진화의 미래 모던 자바 인 액션 18장-21장, 함수형 프로그래밍과 자바 진화의 미래 '어떻게'에 집중하는 프로그래밍 형식은 고전의 객체지향 프로그래밍에서 이용하는 방식이다. 때로는 이를 명령형 프로그래밍이라고 부르기도 하는데 다음 코드에서 보여주는 것처럼 (할당, 조건문, 분기문, 루프 등) 명령어가 컴퓨터의 저수준 언어와 비슷하게 생겼기 때문이다. Transaction mostExpensive = transactions.get(0); if(mostExpensive == null) { throw new IllegalArgumentException("Empty list"); } for (Transaction t: transactions.subList(1, transactions.size())) { if(t.getVa.. 2023. 1. 13.
[독서 기록] 모던 자바 인 액션 13장, 디폴트 메서드 모던 자바 인 액션 13장, 디폴트 메서드 자바의 디폴트 메서드 : 기존 인터페이스를 구현하는 클래스가 자동으로 인터페이스에 추가도니 새로운 메서드의 디폴트 메서드를 상속받게 한다 List 인터페이스의 sort 메서드 default void sort(Comparator 2023. 1. 11.
[독서 기록] 모던 자바 인 액션 12장, 새로운 날짜와 시간 api java.time 패키지의 local 을 사용해보기 LocalDate 만들고 값 읽기 LocalDate date = LocalDate.of(2017, 9, 21); int year = date.getYear();// 2016 Month month = date.getMonth();// September int day = date.getDayOfMonth();// 21 DayOfWeek dow = date.getDayOfWeek(); // thursday int len = date.lenghOfMonth();// 31 boolean leap = date.isLeapYear(); // false (윤년 여부) 팩토리 메서드 now는 시스템 시계의 정보를 이용해서 현재 날짜 정보를 얻는다. LocalDate t.. 2023. 1. 11.
[독서 기록] 모던 자바 인 액션 11장 null 대신 Optional 클래스 11장 null 대신 Optional 클래스 보수적인 null 처리법 public String getCarInsuranceName(Person person) { if (person != null) { Car car = person.getCar(); if (car !=null) { Insurance insurance = car.getInsurance(); if (insurance !=null) { return insurance.getName(); } } } } returrn "Unknown"; } - 365p null 때문에 발생하는 문제 - 에러의 근원이다 - 코드를 어지럽힌다 - 아무 의미가 없다 - 자바 철학에 위배된다 - 형식 시스템에 구멍을 만든다 - 367p 값이 있으면 Optional 클래스는.. 2023. 1. 11.
[독서 기록] 모던 자바 인 액션 10장 람다를 이용한 도메인 전용 언어 모던 자바 인 액션 10장 람다를 이용한 도메인 전용 언어 Collections.sort(persons, comparing(Person::getAge).thenComparing(Person::getName)); 나이 정렬 + 이름 알파벳 정렬 - 332p 한개의 메서드 호출 체인으로 거래 주문 정의하기 Order order = forCustomer("BigBank") .buy(80) .stock("IBM") .on("NYSE") .at(125.00) .sell(50) .stock("GOOGLE") .on("NASDAQ") .at(375.00) .end(); 메서드 체인 만들기 public class MethodChainingOrderBuilder { public final Order order = new.. 2023. 1. 10.