버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • dml
  • 문제풀이
  • 변수
  • 배열
  • 만들기
  • callback
  • 코틀린
  • 이클립스
  • 데이터베이스
  • 객체지향
  • 버블소트
  • sqld
  • 함수
  • 오라클
  • 홈페이지
  • final필드
  • 기본쿼리
  • 포트폴리오
  • 큐
  • 안드로이드
  • foreach
  • 게시판
  • 부트스트랩
  • 이것이자바다
  • 스프링
  • opacity
  • 세션
  • 톰캣
  • SQL
  • 스택

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

🏃‍♀️ Do it !/TIL

람다식 / 클래스 멤버와 로컬 변수 사용 / 표준 API 함수적 인터페이스

2022. 9. 30. 09:18
728x90

2022 / 9 / 30 금

2022 / 10 / 4 화

  • 람다식
  • 클래스 멤버, 로컬 변수 사용
  • 표준 API 함수적 인터페이스

✔ 람다식

자바8 = jdk1.8 같은의미!


람다식이란?

익명 함수를 생성하기 위한 식으로 객체 지향 언어보다는 함수 지향 언어에 가깝다.
람다식을 사용하면 코드가 매우 간결해지며, 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 집계 할 수 있다.


람다식 기본 문법

함수적 스타일의 람다식을 작성하는 방법은 다음과 같다.
(타입 매개변수, ... ) -> { 실행문; ...}
( int a ) -> { System.out.println(a); }


람다식 문법 특징

  1. 매개 타입은 런타임시에 대입값 따라 자동 인식 -> 생략 가능
  2. 하나의 매개변수만 있을 경우에는 괄호( ) 생략 가능
  3. 하나의 실행문만 있다면 중괄호 { } 생략 가능
  4. 매개변수가 없다면 괄호 ( ) 생략 불가
  5. 리턴값이 있는 경우, return 문 사용
  6. 중괄호 { }에 return 문만 있을 경우, 중괄호 생략 가능

타겟 타입 (Target type)

람다식은 인터페이스 변수에 대입된다.
즉 람다식은 인터페이스의 익명 구현 객체를 생성한다는 뜻 !
인터페이스 변수 = 람다식 ;


함수적 인터페이스 (functional interface)

람다식은 하나의 메소드를 정의하기에 두 개 이상의 추상 메소드가 선언된 인터페이스는 람다식을 이용할 수 없다.
하나의 추상 메소드가 선언된 인터페이스만이 람다식의 타겟타입이 된다. 이를 함수적 인터페이스라 한다.

@FunctionalInterface
함수적 인터페이스 작성 시, 두개 이상의 추상메소드가 선언되지 않도록 컴파일러가 체킹해주는 기능


✔ 클래스 멤버와 로컬 변수 사용

람다식 실행 블록에는 클래스 멤버인 필드와 메소드를 제약없이 사용가능하다.

🔔 람다식에서의 this는 람다식을 실행한 객체의 참조이다 !!

로컬변수사용
람다식은 로컬 익명 구현 객체를 생성시킨다고도 볼 수 있다.
람다식에서 바깥 클래스 필드나 메소드는 제한 없이 사용가능하나, 메소드의 매개 변수 또는 로컬 변수를 사용하면
이 두변수는 final 특성을 가져야한다.


✔ 표준 API 함수적 인터페이스

종류 추상메소드 특징
Consumer 매개값은 있고, 리턴값은 없음
Supplier 매개값은 없고, 리턴값은 있음
Function 매개값도 있고, 리턴값도 있음
주로 매개값을 리턴값으로 매핑(타입변환)
Operator 매개값도 있고, 리턴값도 있음
주로 매개값을 연산하고 결과를 리턴
Predicate 매개값은 있고, 리턴 타입은 boolean
매개값을 조사해서 ture / false를 리턴

 

'🏃‍♀️ Do it ! > TIL' 카테고리의 다른 글

네트워크 기초  (0) 2022.10.07
입력 스트림, 출력 스트림  (0) 2022.10.05
제네릭 / 멀티 타입 파라미터 / 제네릭 메소드 / 버블 소트  (0) 2022.09.30
Set 컬렉션 / Map 컬렉션 / 이진 트리 / 스택 & 큐  (0) 2022.09.28
스레드 그룹 / 스레드폴 / 컬렉션 프레임워크  (0) 2022.09.27
    '🏃‍♀️ Do it !/TIL' 카테고리의 다른 글
    • 네트워크 기초
    • 입력 스트림, 출력 스트림
    • 제네릭 / 멀티 타입 파라미터 / 제네릭 메소드 / 버블 소트
    • Set 컬렉션 / Map 컬렉션 / 이진 트리 / 스택 & 큐
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바