lambda

java

[java] Variable used in lambda expression should be final or effectively final, 람다 캡처링

Variable used in lambda expression should be final or effectively final 아래와 같이 java 코드를 작성하면 intellij에서 오류를 뱉으며 컴파일되지 않는다. int number = 1234; number = 2; Runnable r = () -> System.out.println(number); 결론부터 말하면, 람다에서는 파라메터가 아닌 외부 변수(free variable, 자유변수)를 사용 할 수 있다. 단, 지역변수는 final이거나 final처럼 사용되어야한다.(effectively final) 그 이유를 알아보자. 변수 변수에는 클래스변수, 인스턴스 변수, 지역변수가 있다. public class test { int iv; // 인스..

java

[java] lambda를 이용해 callback 구현하기

lambda 먼저 lambda에 대한 설명은 여기를 참고하자. https://wouldyou.tistory.com/63 [java] Lambda 람다란? 람다함수 람다함수는 메소드를 하나의 식(Expression)으로 표현하는 것으로 익명함수(Anonymous function)를 생성 한다. 함수형 프로그래밍을 하고자 하며 나왔다고 한다. 자바에서는 메소드 혼자 선언 wouldyou.tistory.com callback만들기 functional interface를 하나 생성해준다. interface Testable { void run(); } interface를 아래와 같이 구현하면 callback처럼 사용할 수 있다. public class Example { // 인터페이스 Testable로 된 클래스..

우주유령
'lambda' 태그의 글 목록