Java8
[Java] Java 8 특징
[Java] Java 8 특징
2023.04.13Java SE 8 (LTS) 2014년 3월에 공개했으며 대표적인 변경 사항은 다음과 같다. 람다 표현식(Lambda Expression) 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. Predicate p = (Apple a) -> a.getWeight(); 자세한 내용은 [람다 표현식 소개], [람다 타입/검사/추론] 이 글들을 참고하자 메서드 참조(Method Reference) 메서드 참조는 람다 표현식을 축약한 형태이다. 메서드 참조를 사용하면 람다 표현식을 더 줄일 수 있는데, 상황에 따라 가독성이 더 좋아보일 수 있다. Predicate p = Apple..
[Java] 함수형 인터페이스
[Java] 함수형 인터페이스
2023.04.03함수형 인터페이스? 함수형 인터페이스는 오직 하나의 추상 메서드를 가지고 있는 인터페이스이다. 함수 디스크립터 함수형 인터페이스의 추상 메서드는 람다 표현식의 시그니처를 묘사한다. 함수형 인터페이스의 추상 메서드 시그니처를 함수 디스크립터라고 한다. 다양한 람다 표현식을 사용하려면 공통의 함수 디스크립터를 기술하는 함수형 인터페이스 집합이 필요하다. 자바 API는 Comparable, Runnable, Callable 등의 다양한 함수형 인터페이스를 포함하고 있다. 여기서 Java 8 라이브러리는 java.util.function 패키지에서 새로운 함수형 인터페이스를 제공하는데, 그 중에서 Predicate, Consumer, Function 인터페이스를 살펴보자. Predicate java.util.f..
[Java] 동작 파라미터화 코드 전달하기
[Java] 동작 파라미터화 코드 전달하기
2023.03.28동작 파라미터화? 동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드블록을 의미한다. 이 코드 블록은 나중에 프로그램에서 호출한다. 예를 들어, 나중에 실행될 메서드의 인수로 코드 블록을 전달할 수 있다. 결과적으로 코드 블록에 따라 메서드의 동작이 파라미터화 된다. 변화하는 요구사항마다 새로운 파라미터를 받는 메서드를 만들어야 하는 상황이 생길 수 있다. 하지만 동작 파라미터화 코드를 전달하면 해결이 가능하다. 변화하는 요구사항에 대응하기 농장 재고목록 애플리케이션에서 재고 파악하는 예제를 통해 요구사항의 변화에 대응해보자. 요구사항 1. 녹색 사과만 필터링 사과 색을 정의하는 다음과 같은 Color enum이 존재한다고 가정하자 enum Color { RED, GREEN } public..