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);
}