꿀먹는돼지
꿀돼지블로그
꿀먹는돼지
전체 방문자
오늘
어제
  • 분류 전체보기 (156)
    • 여행 (2)
    • TODAY (1)
    • 주식 (1)
    • DEV (58)
      • Server (2)
      • SpringFramework (5)
      • DB (0)
      • Unity (44)
      • 그냥 알고리즘공부 (2)
      • JAVA (2)
    • Aseprite (1)
    • OLD개발이야기 (63)
      • IT 공부 (6)
      • 알고리즘 공부 (6)
      • 개발관련 글 (3)
      • C++ (5)
      • C# (0)
      • Qt (8)
      • bigdata (2)
      • Python-mysql (12)
      • html (2)
      • python (1)
      • Android Studio (6)
      • 자바스크립트 (2)
      • 포트폴리오 (0)
      • 작업 (0)
      • 기타작업 (2)
    • IT Tools (1)
    • 기타 (12)

블로그 메뉴

  • 홈
  • 방명록
  • 태그
  • 미디어로그
  • 위치로그

공지사항

인기 글

태그

  • 1인개발
  • Unity
  • 위치캐슬
  • 도트
  • 마녀
  • 클리커
  • 게임
  • 유니티
  • 도트게임
  • 육성
  • 모바일
  • 육성게임
  • honyepig
  • myql#외부접속
  • mysql
  • PYTHON
  • database
  • 마녀육성
  • 마녀 게임
  • 인디게임

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
꿀먹는돼지

꿀돼지블로그

DEV

Java8 람다

2022. 2. 18. 10:08
람다식(lambda expression)
-자바에서 클래스를 생성하지 않고 함수의 호출로 기능을 수행한다.
-외부값을 건드리지 않고(사이드이펙트가 없다.), 주어진 매개변수로 결과를 리턴한다.
 
Before
int add(int x, int y){
    return x+ y;
}
After
(int x, int y) -> {return x+y;}

 

인터페이스를 선언하고, 람다를 활용하는 예제

@FunctionalInterface // 함수형인터페이스, 이 어노테이션이 있으면 여러개의 메서드를 선언하면 에러가 난다.
Public interface MaxTest{
    Int getMax(int x, int y); // 인터페이스 구현부 1개 선언해야함.
    //더 메서드를 선언하지 않는다.
}
.
.
.
MaxTest maxNum = (x,y) -> (x>=y)? x:y; // 함수가 여러개면 여기가 에러날 것임. 어떤 메서드 호출인지 모호해지니깐.
Int max = maxNum.getMax(10,5);
// max = 10
 
3가지 활용법 
Interface Print{
    Void printString(string str);
}

Public class Test{

    Public static void main(String[] args){
        //1.변수로 implementation 하는 방법
        Print test = str -> system.out.println(str);
        test.printString(“str”); // str 출력됨

        //2.implementation한 내용을 매개변수로 넘기는 방법
        printLamda(test); // hi 출력

        //3.implementation자체가 반환값으로 넘기는 방법 
        Print return = returnPrint();
        return.printString(“return”);
    }
	//2.
    Public static void showlamda(Print lamda){ // 함수 자체가 매개변수로 넘어갈 수 있다는 점.
        Lamda.printString(“hi”);
    }

    //3.
    Public static void Print returnPrint(){
        Return s->system.out.println(s);
    }
}

'DEV' 카테고리의 다른 글

java: warning: source release 11 requires target release 11  (0) 2022.01.23
SQL 튜닝 (1) - 실행계획  (0) 2021.12.18
    'DEV' 카테고리의 다른 글
    • java: warning: source release 11 requires target release 11
    • SQL 튜닝 (1) - 실행계획
    꿀먹는돼지
    꿀먹는돼지
    꿀꿀

    티스토리툴바