본문 바로가기

자바10

메소드 참조 메소드 참조 메소드 참조(Method References)는 말 그대로 메소드를 참조해서 매개 변수의 정보 및 리턴 타입을 알아내어, 람다식에서 불필요한 매개 변수를 제거하는 것이 목적이다. 람다식은 종종 기존 메소드를 단순히 호출만 하는 경우가 많다. 예를 들어 두 개의 값을 받아 큰 수를 리턴하는 Math 클래스의 max() 정적 메소드를 호출하는 람다식은 다음과 같다. (left, right) -> Math.max(left, right); 람다식은 단순히 두 개의 값을 Math.max() 메소드의 매개값으로 전달하는 역할만 하기 때문에 다소 불편해 보인다. 이 경우에는 다음과 같이 메소드 참조를 이용하면 매우 깔끔하게 처리할 수있다. Math :: max; 메소드 참조도 람다식과 마찬가지로 인터페이.. 2020. 7. 2.
람다식 기본 문법 람다식이란? 자바는 함수적 프로그래밍을 위해 자바 8부터 람다식(Lambda Expression)을 지원하면서 기존의 코드 패턴이 많이 달라졌다. 람다식은 익명 함수(anonymous funtion)를 생성하기 위한 식으로 객체 지향 언어보다는 함수 지향 언어에 가깝다. 자바에서 람다식을 수용한 이유는 자바 코드가 매우 간결해지고, 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계할 수 있기 때문이다. 람다식의 형태는 매개 변수를 가진 코드 블록이지만, 런타임 시에는 익명 구현 객체를 생성한다. 람다식 -> 매개 변수를 가진 코드블록 -> 익명 구현 객체 예를 들어 Runnable 인터페이스의 익명 구현 객체를 생성하는 전형적인 코드는 다음과 같다. Runnable runnable = new.. 2020. 7. 2.
제네릭 타입의 상속과 구현 제네릭 타입의 상속과 구현 제네릭 타입도 다른 타입과 마찬가지로 부모 클래스가 될 수 있다. 다음은 Product 제네릭 타입을 상속해서 ChildProduct 타입을 정의한다. public class ChildProduct extends Product { ... } 자식 제네릭 타입은 추가적으로 타입 파라미터를 가질 수 있다. 다음은 세 가지타입 파라미터를 가진 자식 제네릭 타입을 선언한 것이다. public class ChildProduct extends Product { ... } public class Product { private T kind; private M model; public T getKind() { return this.kind; } public M getModel() { retu.. 2020. 7. 2.
와일드카드 타입 와일드카드 타입(, 2020. 7. 2.