ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java - Lambda
    Java 2018. 2. 7. 12:38
    반응형

    // 일반적인 익명 객체 실행

    public class Main {

        public static void main(String[] args) {
            
            // 일반적인 익명 객체 실행
            Runnable task1 = new Runnable() {
                @Override
                public void run() {
                    for(int i=1;i<=3;i++) {
                        System.out.println("익명 객체 실행");
                    }
                }
            };
            // Thread th1 = new Thread(task1);
            // th1.start();
            
            new Thread(task1).start(); // 메서드 체이닝 -> 반환값이 있어야 스레드를 낚아챌수 있다.
        }

    }








    // 람다 익명 객체 실행


    public class Main {

        public static void main(String[] args) {
            
            // 람다식 익명 객체
    // 무조건 1개의 인터페이스, 1개의 메서드만 구현 가능하다.
            Runnable task1 = () -> {
                for(int i=1;i<=3;i++) {
                    System.out.println("익명 객체 실행");
                }
            };
            
            new Thread(task1).start(); // 메서드 체이닝 -> 반환값이 있어야 스레드를 낚아챌수 있다.
        }

    }









    public class Main {

        public static void main(String[] args) {
            
            // 타입 생략 가능 - 인터페이스에서 지정되있음
            OperationA lambdaA = (a, b) -> {
                int result = a+b;
                System.out.println(result);
            };
            lambdaA.plus(3, 7);
            
            // 매개변수 1개일 경우 () 생략가능
            OperationB lambdaB = a -> {
                System.out.println(a+" LambdaB의 제곱 : "+a*a);
            };
            lambdaB.square(5);
            
            OperationC lambdaC = () -> {
                System.out.println("프로그램 실행");
            };
            lambdaC.process();
            
            // 실행 내용없이 반환만 있는 경우
            // 코드 블록 생략 가능
            OperationD lambdaD = msg -> System.out.println(msg);
            lambdaD.echo("반환만 한다");
            
        }
        
        // LambdaInterface
        interface OperationA{void plus(int a, int b);}
        interface OperationB{void square(int a);}
        interface OperationC{void process();}
        interface OperationD{void echo(String msg);}

    }


    반응형

    'Java' 카테고리의 다른 글

    JavaFX - FXML - Scene Builder  (0) 2018.02.08
    Java - JavaFX  (0) 2018.02.08
    Java - Webserver Http  (0) 2018.02.07
    Java - Network - File I/O  (0) 2018.02.07
    Java - UDP  (0) 2018.02.06

    댓글

Designed by Tistory.