본문 바로가기

Java83

JAVA 8 함수형 인터페이스 함수형 인터페이스(Functional interface)는 1개의 추상 메서드를 갖고 있는 인터페이스입니다. public interface FunctionalInterface { public abstract void printText(String text); } 자바의 람다식은 함수형 인터페이스로 접근이 되기 때문에 함수형 인터페이스를 사용합니다. 람다함수 : 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어입니다. 현재 사용되고 있는 람다의 근간은 수학과 기초 컴퓨터과학 분야에서의 람다 대수이다. 람다 대수는 간단히 말하자면 수학에서 사용하는 함수를 보다 단순하게 표현하는 방법입니다. 아래 코드에서 변수 func는 람다식으로 생성한 객체를.. 2022. 11. 12.
JAVA8 STREAM(1) 자바 8 에서 추가한 Stream은 람다를 활용할 수 있는 기술입니다. 자바 8 이전에는 배열 또는 컬렉션을 다루는 방법은 for, foreach를 사용했습니다. 로직이 복잡해질수록 코드의 양이 많아져 여러 로직이 섞이게 되고, 메서드를 나눌경우 루프를 여러번 도는 현상도 발생합니다. stream은 데이터의 흐름입니다. 배열 또는 컬렉션 인스턴스에 함수를 조합해서 원하는 결과를 필터링하고 가공된 결과를얻을 수 있습니다. 또한 람다를 활용해서 코드의 양을 줄이고 간결하게 표현할 수 있습니다. 배열과 컬렉션을 함수형으로 처리할 수 있습니다. Stream은 생성하기 (인스턴스 생성) 가공하기 (필터링, 맵핑) 결과 로 나눌 수 있습니다. 보통 배열과 컬렉션을 이용해서 Stream을 생성하지만 다양한 방법으로 .. 2022. 10. 15.
JAVA 8 interface 변경사항 등장 배경 인터페이스에 새로운 메서드를 구현하는 경우, 인터페이스를 구현한 구현체가 수십개라면 어떻게 해야 될까요? 아마 모든 구현체에 새로 추가한 메서드를 구현해야 할 것 입니다. 기존의 구현되어 있는 코드를 고치지 않고도 이미 공개된 인터페이스를 변경할 방법은 없을까? 라는 아이디어에서 default method가 등장하게 되었습니다. Java에서 기존의 interface는 추상 메서드만 멤버로 가질 수 있었습니다. 하지만 Java 8 부터 default 키워드를 사용해 interface에 메서드를 선언할 수 있게 되었습니다. default 키워드 public interface Interface1 { int add(int x, int y); default int mul(int x, int y) { r.. 2022. 8. 27.