Item 43 - 람다보다는 메서드 참조를 사용하라
메서드 참조의 장점 람다의 가장 큰 장점은 간결함이다. 그런데 함수객체를 람다보다 더 간결하게 만드는 방법이 있다. 바로 메서드 참조(Method Reference)다. 자바8 Map merge 메서드 default V merge(K key, V value, BiFunction<? super V, ? super V, ? ext...
메서드 참조의 장점 람다의 가장 큰 장점은 간결함이다. 그런데 함수객체를 람다보다 더 간결하게 만드는 방법이 있다. 바로 메서드 참조(Method Reference)다. 자바8 Map merge 메서드 default V merge(K key, V value, BiFunction<? super V, ? super V, ? ext...
익명 클래스(Annonymous Class) 예전에는 함수 객체를 만드는 주요 수단으로 익명 클래스를 많이 사용했다. 함수객체란 ? 추상 메서드 하나만 담은 인터페이스(드물게는 추상 클래스)의 인스턴스 정렬을 위한 비교함수로 익명클래스를 사용한 예시 // 익명 클래스를 함수 객체로 사용 - 낡은 기법! Collections.sort(words...
마커 인터페이스 아무 메서드도 선언하지 않은 인터페이스이다. 자바의 대표적인 마커 인터페이스로는 Serializable, Cloneable, Remote 등이 있다. 대부분의 경우, 마커 인터페이스를 단순한 타입 체크를 하기 위해 사용한다. Serializable 인터페이스를 활용한 예시를 통해 마커 인터페이스를 이해해보자. pac...
java.lang.Override 애너테이션 @Override 애너테이션은 상위 타입의 메서드를 재정의 할 때 사용한다. @Override 를 일관되게 사용하면, 여러가지 버그를 예방할 수 있다. import java.lang.annotation.*; /** * Indicates that a method declaration is i...
명명패턴 전통적으로 도구나 프레임워크가 다뤄야 할 프로그램 요소에는 딱 구분되는 명명 패턴을 적용해왔다. 테스트 프레임워크인 Junit3 버전을 확인해보자. junit3.junit.framework.TestSuite 클래스 public class TestSuite implements Test { private boolean isTest...