[JAVA] 메소드 레퍼런스

2022. 5. 6. 15:54·JAVA
728x90

메소드 레퍼런스

  • 메서드 참조라는 의미
  • 람다 표현식 몸체 부분에 기술되는 메서드를 이용해서 표현되며, 메서드의 이름만 전달함
  • 구분자(::)를 붙이는 방식으로 메서드 레퍼런스를 표현함
  • 기존에 선언되어 있는 메소드를 지정
  • 메서드 레퍼런스를 사용하면 람다표현식이 더욱 간결해짐

메소드 레퍼런스 유형

  • ClassName :: static method : 클래스의 static method를 지정하는 경우
  • ClassName :: instance method : 객체의 instance method를 지정하는 경우
  • Object :: instance method : 선언된 객체의 instance method를 지정하는 경우
  • ClassName :: new : 클래스의 constructor를 지정하는 경우

메소드 레퍼런스 유형은 총 4가지가 존재함


메소드 레퍼런스 예시

//Class Name :: static 메소드 레퍼런스 예시
//메소드 레퍼런스 축약전
Function<String, Integer> stringIntegerFunction = text -> Integer.parseInt(text);
//메소드 레퍼런스 축약후
Function<String, Integer> stringIntegerMethodReferFunction = Integer::parseInt;

//Class Name :: Instance 메소드 레퍼런스
//메소드 레퍼런스 축약전
Function<Car, String> carStringFunction = car -> car.getName();
//메소드 레퍼런스 축약후
Function<Car, String> carStringReferFunction = Car::getName;

//Constructor :: new 메소드 레퍼런스
//메소드 레퍼런스 축약전
Function<String, Car> stringCarFunction = name -> new Car(name);
//메소드 레퍼런스 축약후
Function<String, Car> stringCarReferFunction = Car::new;
저작자표시

'JAVA' 카테고리의 다른 글

[JAVA] InitialRAMPercentage / MaxRAMPercentage 옵션  (0) 2023.05.31
[JAVA] OPTIONAL  (0) 2022.05.30
[JAVA] REACTIVE STREAMS  (0) 2022.05.06
[JAVA] VAR 타입추론  (0) 2022.04.24
[JAVA] 하이버네이트(HIBERNATE) DDL-AUTO 옵션 정리  (0) 2022.04.19
'JAVA' 카테고리의 다른 글
  • [JAVA] InitialRAMPercentage / MaxRAMPercentage 옵션
  • [JAVA] OPTIONAL
  • [JAVA] REACTIVE STREAMS
  • [JAVA] VAR 타입추론
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    엘라스틱서치
    자바
    Spring
    이펙티브 코틀린
    IntelliJ
    Kafka
    AWS
    SQL
    코틀린
    이펙티브코틀린
    ElasticSearch
    cleancode
    docker
    go
    java
    프로그래머스
    클린코드
    splunk
    Elk
    JPA
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[JAVA] 메소드 레퍼런스
상단으로

티스토리툴바