자바8(4)
-
Optional이란?
Optional이란? Null값을 참조하여 NullPointException이 나는 것을 방지하기 위해 Null Check를 했던 예전코드를 보안하기 위해 자바8에서 지원하는 Class. 객체를 Optional로 한번 감싸 준다. -> 쉽게 null safe하게 만들 수 있다. 기존코드 Member member = new Member("빙구", 33); if(member.getAddress() != null) { System.out.println(member.getAddress()); } 저렇게 null check를 해줘야 한다. Optional 목적 NullPointException이 나지않게 방어해주며, 해당 객체가 null일 경우에 대한 방안을 유도한다. Optional 사용법 1. Optional..
2021.01.16 -
자바8, 스트림
futurecreator.github.io/2018/08/26/java-8-streams/ Java 스트림 Stream (1) 총정리 이번 포스트에서는 Java 8의 스트림(Stream)을 살펴봅니다. 총 두 개의 포스트로, 기본적인 내용을 총정리하는 이번 포스트와 좀 더 고급 내용을 다루는 다음 포스트로 나뉘어져 있습니다. Java 스트 futurecreator.github.io futurecreator.github.io/2018/08/26/java-8-streams-advanced/ Java 스트림 Stream (2) 고급 이전 포스트에 이어서 Java 8의 스트림(Stream)을 살펴봅니다. 자바 8 스트림은 총 두 개의 포스트로, 기본적인 내용을 총정리하는 이전 포스트와 좀 더 고급 내용을 다루는..
2021.01.15 -
함수형 인터페이스란, 자바8에서 지원하는 함수형 인터페이스
함수형 인터페이스란? 인터페이스에 추상메서드 하나만 선언되어 있는 인터페이스. (두개거나 없으면 함수형 인터페이스가 아니다.) @FunctionalInterface 애노테이션을 지원하여 해당 인터페이스에 추가하면 두 개 이상의 추상 메서드가 선언되면 컴파일 에러가 나도록 지원한다. @java.lang.FunctionalInterface public interface FunctionalInterface { int doIt(int input); } 함수형 인터페이스가 생겨난 배경은? 왜 이런 특수한 형태의 인터페이스가 생겨났을까? 바로 람다식을 지원하기 위해서이다. 생각해보면 람다식이 추상메서드를 구현할때 어떤 메서드인지, 메서드명을 명시하지 않는다. 이는 람다식은 무조건 함수형인터페이스인 경우에만 사용할 ..
2021.01.14 -
자바8 람다식의 사용법과 장단점.
자바8의 람다식이란? 함수형 인터페이스를 구현하는 익명객체를 작성하는 간결해진 작성법. 익명객체를 구현해야하는 하나의 메서드를 간결해진 식으로 표현한다. 람다식 사용법 (매개변수) -> {실행문} 매개변수가 하나일 경우 () 소괄호 생략가능 i -> {i+1} 실행문이 한 줄일 경우 {} 중괄호 생략가능 i -> i+1 매개변수가 두개일 경우 () 소괄호 안에 작성하고 콤마로 구분 (i,j) -> i+j 실행문이 바로 return하는 문장이면 return 생략가능 i -> i+10 람다식의 장점 코드가 간결해짐. 람다식의 단점 단점은 없다.(주관적인 의견) 어떤 사람들은 람다식의 성능상의 문제, 가독성의 문제를 따지는데 성능상의 문제는 정확히 말하면 람다식의 문제가 아니라 람다식으로 표현한 그 실행문의 ..
2021.01.12