익명함수

자바8에는 추상 메서드 하나짜리 인터페이스는 특별한 의미를 인정받아 특별한 대우를 받게 되었다. 함수형 인터페이스라 부르는 이 인터페이스들의 인스턴스를 람다식(lamda expression)을 사용해 만들 수 있게 된 것이다. Collections.sort(words, new Comparator(){ public int compare(String s1, String s2){ return Integer.compare(s1.length, s2.length()); } }); Collections.sort(words, (s1, s2) -> Integer.compare(s1.length(), s2.length()); 컴파일러가 문맥을 살펴 타입을 추론해준다. 타입을 명시해야 코드가 더 명확할 때만 제외하고는, 람..
익명 구현 객체 생성 인터페이스 타입으로 필드나 변수를 선언하고, 구현 객체를 초기값으로 대입하는 경우를 생각해보자. 구현 클래스를 선언하고, new 연산자를 이용해서 구현 객체를 생성한 후, 필드나 로컬 변수에 대입하는 것이 기본이다. class TV implements RemoteControl { } class A{ RemoteControl field = new TV(); void method(){ RemoteControl localVar = new TV(); } }그러나 구현 클래스가 재사용되지 않고, 오로지 해당 필드와 변수의 초기값으로만 사용하는 경우라면 익명 구현 객체를 초기값으로 대입하는 것이 좋다. 인터페이스 [필드|변수] = new 인터페이스("매개값", "..."){ // 인터페이스에 ..
익명함수 익명함수는 간단히 말해 이름을 가지고 있지 않는 함수이다.익명함수는 함수를 변수에 저장하거나, 어떤 객체의 메서드로 설정하기 위해, 콜백으로 활요하는 것과 같이 나중에 사용하기 위한 함수를 만들때 주로 사용한다. (함수를 참조하기 위한 용도로 함수의 이름을 가지고 있을 필요가 없다.)아래는 사용 예이다. 123456789101112131415161718192021222324 Document window.onload = function(){ console.log("onload!"); // 변수에 저장 } var ninja = { shout : function(){ console.log("shout!!"); // 메서드로 사용 } } setTimeout(function(){ alert("hi!");..
깡냉쓰
'익명함수' 태그의 글 목록