본문 바로가기

전체 글

(229)
람다 표현식과 this 키워드에 관하여 @FunctionalInterface interface MyFunction { R apply(T t); } 위와 같은 함수형 인터페이스가 있을 때 익명클래스를 작성하여 인터페이스의 인스턴스를 얻을 수 있다. MyFunction plus30 = new MyFunction() { @Override public Integer apply(Integer t) { return t + 30; } }; 물론 람다표현식으로도 바꿀 수 있다. MyFunction plus30 = i -> i + 30; 보통의 많은 자료에서, 익명클래스를 람다표현식으로 바꿔가며 설명을 이어간다. 어그런데 혹시, 혹시. 람다를 익명클래스로 바꿀 수는...? 그럴 수 있다. 물론. 하지만 함수형 인터페이스 내에는 default 메소드 또한 다수..
자바 Stream API 자바 1.8에 도입된 Stream API에 대해 알아보자. 다음은 Stream 인터페이스에 적힌 주석의 첫 문장으로, 스트림의 정의를 확인할 수 있다. A sequence of elements supporting sequential and parallel aggregate operations. 번역(야매)을 하자면 원소의 순차적이고 병렬적인 연산을 종합지원하는 시퀀스다. 여기서 시퀀스는 사전적 의미를 따르는거 같고, 원소라 함은 컬렉션, 배열, 파일, 정규표현식 패턴 패처, 난수 생성기, 다른스트림을 예로 들수 있다.(이펙티브자바3) 다음은 우리 팀 멤버의 나이를 담은 ArrayList이다. List teamMemberAge = new ArrayList(); teamMemberAge.add(48); te..
[자바] 옵저버패턴 : java.util.Observer, Observable 이전 포스팅 https://dev-jones.tistory.com/154 [자바] Observer 패턴 '관찰자' 관찰하는 객체를 'Observer' 인터페이스를 구현하도록 하고, 관찰하려는 객체는 'Observable'을 상속한다. 다음예제는 난수를 만들고 이를 'Observer'가 관찰하고, 그 수를 출력하도록 한다. packa dev-jones.tistory.com 에서는 Observer 인터페이스를 직접 구현해 사용했었다. 이번에 소개할 내용은 이미 존재하는 java.util.Observer 인터페이스와 java.util.Observable 클래스를 직접 이용하여 똑같은 예제를 다른 코드로 작성하였다. Observable클래스의 setChanged메소드와 발생한 난수가 notifyObservers..