산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 8 람다 표현식 마스터하기: 함수형 프로그래밍 가이드

람다 표현식은 Java 8에 도입되었으며 Java 8의 가장 큰 기능으로 꼽힙니다. 람다 표현식은 함수형 프로그래밍을 용이하게 하고 개발을 크게 단순화합니다.

구문

람다 표현식은 다음 구문으로 특징지어집니다.

parameter -> expression body

람다 표현식의 중요한 특징:

람다 표현식 예제

원하는 에디터로 다음 Java 프로그램 생성 (예: C:\JAVA).

Java8Tester.java

public class Java8Tester {
    public static void main(String args[]) {
        Java8Tester tester = new Java8Tester();
        
        // 타입 선언 있음
        MathOperation addition = (int a, int b) -> a + b;
        // 타입 선언 없음
        MathOperation subtraction = (a, b) -> a - b;
        // 중괄호와 return 문 함께 사용
        MathOperation multiplication = (int a, int b) -> { return a * b; };
        // 중괄호와 return 문 없이 사용
        MathOperation division = (int a, int b) -> a / b;
        
        System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
        System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));
        System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication));
        System.out.println("10 / 5 = " + tester.operate(10, 5, division));
        
        // 괄호 없음
        GreetingService greetService1 = message -> System.out.println("Hello " + message);
        // 괄호 있음
        GreetingService greetService2 = (message) -> System.out.println("Hello " + message);
        
        greetService1.sayMessage("Mahesh");
        greetService2.sayMessage("Suresh");
    }
    
    interface MathOperation { int operation(int a, int b); }
    interface GreetingService { void sayMessage(String message); }
    
    private int operate(int a, int b, MathOperation mathOperation) {
        return mathOperation.operation(a, b);
    }
}

결과 검증

javac 컴파일러로 클래스 컴파일:

C:\JAVA> javac Java8Tester.java

Java8Tester 실행:

C:\JAVA> java Java8Tester

다음 출력 생성:

10 + 5 = 15
10 - 5 = 5
10 x 5 = 50
10 / 5 = 2
Hello Mahesh
Hello Suresh

위 예제에서 고려해야 할 중요한 점:

범위(Scope)

람다 표현식을 사용하면 모든 final 변수 또는 실질적으로 final인 변수(한 번만 할당된 변수)를 참조할 수 있습니다. 변수에 두 번째 값이 할당되면 람다 표현식은 컴파일 오류를 던집니다.

범위 예제

public class Java8Tester {
    final static String salutation = "Hello! ";
    
    public static void main(String args[]) {
        GreetingService greetService1 = message -> System.out.println(salutation + message);
        greetService1.sayMessage("Mahesh");
    }
    
    interface GreetingService { void sayMessage(String message); }
}

결과 검증

C:\JAVA> javac Java8Tester.java
C:\JAVA> java Java8Tester
Hello! Mahesh

java

  1. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  2. Java 표현식, 문장, 블록 이해하기
  3. Java 주석: 종류, 사용법, 모범 사례
  4. Java 향상된 for 루프(for-each) 완벽 가이드: 문법, 예제, 비교
  5. Java String 마스터하기: 생성, 메서드, 모범 사례
  6. Java 인터페이스 마스터: 개념, 구현, 모범 사례
  7. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  8. Java Try-with-Resources 마스터: 자동 리소스 관리 완전 해설
  9. Java 애너테이션 완전 해설: 종류, 배치 위치, 실전 예제
  10. Java Assertion(어설션) 실전 가이드: 버그 조기 발견과 코드 신뢰성 확보