레이블이 Lambda인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Lambda인 게시물을 표시합니다. 모든 게시물 표시

2019년 7월 4일 목요일

람다식 (Lambda, 𝝀) 예제


Java8에서 새롭게 추가 된 기능. 간단하게 요약 하면 메소드를 간단히 기술하는 기법
구문 Lambda식
(자료형 인수, ...) -> { ... 임의의 처리 ...}

구현할 인터페이스 코드
package project.lambda;

public interface InterfaceExample{
    public abstract void exampleMethod(String name);
}

기본 람다 예제
package project.lambda;
/**
* 람다식 예제 입니다.
*/
public class LambdaExample{
   
    public static void main(String...args){
       // 처리를 람다식으로 구현 함.
        InterfaceExample lambda = (String name) -> {
            System.out.println("이것이 바로 람다("+name+")입니다");
        };
        
        // 람다식을 실행 합니다.
        lambda.exampleMethod("Lambda ^^");
    }
}

이전에는 익명(anonymouse) 클래스로 처리 함
package project.lambda;

/**
* 람다식 이전에 람다식 처리를 대신 했던 익명클래스(anonymouse) 방식
* 의 예제 입니다.
*/
public class AnonymouseExample{
    public static void main(String... args){
        // 익명클래스를 이용해서 구현 함
        InterfaceExample anonymouse = new InterfaceExample(){
            public void exampleMethod(String name){
                System.out.println("이것이 바로 익명클래스("+name+") 입니다");
            }
        };
        
        // 익명클래스 변수 실행
        anonymouse.exampleMethod("anonymouse");
    }
}

반환 값의 Lambda 예제들
package project.lambda;

/**
* 람다식 반환식 예제 입니다.
*/
public class LambdaReturnValueExample{
    
    public static void main(String...args){
       // 처리를 람다식으로 구현 함.
        InterfaceReturnValue lambda = (String name) -> {
            return "("+name+")";
        };
        
        // 람다식을 실행 합니다.
        System.out.println("이것이 바로 람다식"+
                           lambda.exampleMethod("Lambda ^^")+" 입니다");
        
        // 파라미터 타입을 생략하기
        lambda = (name) -> { return "<"+name+">";};
        System.out.println("이것이 바로 형생략 람다식"+
                           lambda.exampleMethod("Lambda ^^")+" 입니다");
        
        // 파라미터가 한 개인 경우 괄호 생략하기
        lambda = name -> { return "{"+name+"}";};
        System.out.println("이것이 바로 괄호생략 람다식"+
                           lambda.exampleMethod("Lambda ^^")+" 입니다");
        
        // return 문만 있는 경우의 생략
        lambda = name -> "["+name+"]";
        System.out.println("이것이 바로 return문 생략 람다식"+
                           lambda.exampleMethod("Lambda ^^")+" 입니다");
        
    }
}
/**
* 반환값을 갖는 인터페이스 임.
*/
interface InterfaceReturnValue{
    public String exampleMethod(String name);
}