나를 기록하다
article thumbnail
[모던 자바 인 액션] 람다 표현식
Java/모던 자바 인 액션 2023. 12. 15. 12:48

익명 클래스로 다양한 동작을 구현할 수 있지만 코드가 깔끔하지 않다. 깔끔하지 않은 코드는 이전 내용에서 배운 동적 파라미터를 실전에 적용하는 것을 막는 요소다. 이때 더 깔끔한 코드로 동작을 구현하고 전달하는 람다 표현식을 사용해보자. 람다란 무엇인가? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 람다의 특징 익명 • 보통의 메서드와 달리 이름이 없으므로 익명이라 표현한다. • 구현해야 할 코드에 대한 걱정거리가 줄어든다. 함수 • 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. • 하지만 메서드처럼 파라미터 리스트. 바디, 반환..

article thumbnail
[모던 자바 인 액션] 동적 파라미터화
Java/모던 자바 인 액션 2023. 11. 4. 17:38

동적 파라미터화를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다. 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록으로, 이 코드 블록은 나중에 프로그램에서 호출한다. 즉, 코드 블록의 실행은 나중으로 미뤄진다. [예시] 컬렉션을 처리할 때 다음의 메서드 구현 리스트의 모든 요소에 대해서 '어떤 동작'을 수행할 수 있음 리스트 관련 작업을 끝낸 다음에 '어떤 다른 동작'을 수행할 수 있음 에러가 발생하면 '정해진 어떤 다른 동작'을 수행할 수 있음 변화하는 요구사항에 대응하기 예시로 기존의 농장 재고목록 애플리케이션에 리스트에서 녹색 사과만 필터링하는 기능을 추가한다고 가정 첫 번째 시도: 녹색 사과 필터링 사과 색을 정의하는 Color enum enum Color { RED, GREEN..

article thumbnail
[모던 자바 인 액션] 자바의 변화(8 ~ 11)
Java/모던 자바 인 액션 2023. 10. 31. 19:29

자바 8 등장 전과 후 과거의 코드 Collections.sort(inventory, new Compartor() { public int compare(Apple a1, Apple a2) { return a1.getWeight().compareTo(a2.getWeight()); } }); 자바 8을 이용한 자연어에 더 가까운 코드 inventory.sort(comparing(Apple::getWeight)); 자바 8이 제공하는 새로운 기술들 스트림 API 메서드에 코드를 전달하는 기법 인터페이스의 디폴트 메서드 자바 8은 병렬 연산을 지원하는 스트림이라는 새로운 API를 제공한다. 데이터베이스 질의 언어에서 고수준 언어로 원하는 동작을 표현하면, 구현(자바에서는 스트림 라이브러리가 이 역할을 수행)에서..

profile on loading

Loading...