inblog logo
|
goho
    스프링부트

    [자바1.8기술]람다식 Lambda

    gov's avatar
    gov
    Nov 20, 2024
    [자바1.8기술]람다식 Lambda
    Contents
    특징예시 코드응용코드출력
     
    💡
    자바 메소드를 간결한 함수 식으로 표현한 것 형태 : () -> {};

    특징

    1. 람다는 인터페이스로 만든다
    1. 인터페이스 메서드는 하나만 존재해야 한다
    1. 메서드가 인터페이스를 매개변수로 받고 있으면, 행위 보내기
    1. 람다는 매개변수 타입 생략 가능
    1. @FunctionalInterface(런타임) 표시가능

    예시 코드

    • 소비자 MyConsumer 입력만 받고 출력이 없는 연산을 수행
    public interface MyConsumer<T> { void accept(T date); }
    • MyFunction 입력을 받아서 결과를 반환 -return, 매개변수 있다 입력값 T를 받아 결과값 R을 반환
    public interface MyFunction<T, R> { R apply(T t); // return값은 사용자가 지정 }
    • 조건평가 MyPredicate 조건의 참/거짓을 반환하는 인터페이스
    public interface MyPredicate<T> { boolean apply(T t);
    • 공급자 Supplier 입력없이 값을 반환. 반환된 값은 소비자(=나 =호출자)가 사용
    @FunctionalInterface // 메서드 2개시 에러 public interface MySupplier<T> { T get(); }

    응용코드

    public class App { public static void main(String[] args) { // 값이 없으면 괄호(매개변수)가 있어야 한다 // 예) 값 없을 때: () -> {} MyConsumer<Integer> r1 = (Integer date) -> { System.out.println("소비할 데이터 : " + date); }; r1.accept(1); // MySupplier<String> r2 = () -> {return "good";}; MySupplier<String> r3 = () -> "good"; // 람다표현식 -중괄호 생략 가능 String msg = r3.get(); System.out.println(msg); } }

    출력

    notion image
    Share article

    goho

    RSS·Powered by Inblog