java lambda 2

[ Java ] 25. lambda와 effectively final

lambda 와 effectively final JDK 1.8에서 추가된 람다식에는 규칙이 있다. 람다식은 외부 block에 있는 변수에 접근할 수 있다. 외부에 있는 변수가 지역 변수 일 경우 final 혹은 effectively final인 경우에만 접근할 수 있다. effectively final이란? A non-final local variable or method parameter whose value is never changed after initialization is known as effectively fianl. Java8에 추가된 syntatic sugar의 일종으로, 초기화 된 이후 값이 한번도 변경되지 않았다면 effectively final이라고 할 수 있다. effective..

[ Java ] 24. 익명클래스보다는 람다

익명 클래스보다는 람다 자바에서 함수 타입을 표현할 때는 추상 메서드를 하나만 담은 인터페이스(또는 추상 클래스)를 사용했다. 이러한 인터페이스의 인스턴스를 함수 객체라고 해서 특정 함수나 동작을 나타내는데 썼다. 익명 클래스 JDK 1.1 버전부터 함수 객체를 만들 때 익명 클래스(Anonymous Class)를 주로 사용했다. 하지만 익명 클래스 방식은 코드가 너무 길기 때문에 이 떄까지의 자바는 함수형 프로그래밍에 적합하지 않았다. import java.util.*; public class Main { public static void main(String[] args) { List Words = Arrays.asList("APPLE", "Banana", "orange", "korea"); Coll..