람다 (인자 리스트) -> {바디} BinaryOperator test = (a , b) -> a + b; 인자 리스트 인자가 없을 때 : () 인자가 한 개 일 때 : (one) 또는 one 인자가 여러 개 일 때 : (one , two) 인자의 타입은 생략 가능 , 컴파일러가 추론 (infer) 하지만 명시할 수도 있다. (Integer one , Integer two) 바디 화살표 오른쪽에 함수 본문을 정의한다. 여러 줄인 경우에 {}를 사용해서 묶는다. 한 줄인 경우에 생략 가능 , return도 생략 가능 변수 캡처 (Variable Capture) 로컬 변수 캡처 final 이거나 effective final 인 경우에만 참조할 수 있다. 그렇지 않을 경우 concurrency(동시성) 문제가..
함수형 인터페이스 (Functional Interface) 추상 메서드를 딱 하나만 가지고 있는 인터페이스 SAM (Single Abstract Method) 인터페이스 default , static 메서드가 사용 가능하다. static은 재정의가 불가하지만 default는 재정의가 가능하다. // 추상화 메소드가 딱 1개라면 함수형 인터페이스 이다. // 이 규칙을 위반하면 애노테이션에서 컴파일 에러가 발생한다. @FunctionalInterface public interface RunSomething { void doIt(); static void printTestA(){ System.out.println("테스트A"); } default void printTestB(){ System.out.prin..
기록/JAVA 2021. 1. 10. 00:44
람다 (인자 리스트) -> {바디} BinaryOperator test = (a , b) -> a + b; 인자 리스트 인자가 없을 때 : () 인자가 한 개 일 때 : (one) 또는 one 인자가 여러 개 일 때 : (one , two) 인자의 타입은 생략 가능 , 컴파일러가 추론 (infer) 하지만 명시할 수도 있다. (Integer one , Integer two) 바디 화살표 오른쪽에 함수 본문을 정의한다. 여러 줄인 경우에 {}를 사용해서 묶는다. 한 줄인 경우에 생략 가능 , return도 생략 가능 변수 캡처 (Variable Capture) 로컬 변수 캡처 final 이거나 effective final 인 경우에만 참조할 수 있다. 그렇지 않을 경우 concurrency(동시성) 문제가..
기록/JAVA 2021. 1. 9. 21:50
함수형 인터페이스 (Functional Interface) 추상 메서드를 딱 하나만 가지고 있는 인터페이스 SAM (Single Abstract Method) 인터페이스 default , static 메서드가 사용 가능하다. static은 재정의가 불가하지만 default는 재정의가 가능하다. // 추상화 메소드가 딱 1개라면 함수형 인터페이스 이다. // 이 규칙을 위반하면 애노테이션에서 컴파일 에러가 발생한다. @FunctionalInterface public interface RunSomething { void doIt(); static void printTestA(){ System.out.println("테스트A"); } default void printTestB(){ System.out.prin..