본문 바로가기

java22

Optional optional -optional T타입 객체의 래퍼클래스 (래퍼클래스의 예 : Integer, Long) public fianl class Optional{ private final T value; //T타입의 참조변수 (모든 종류의 객체 저장 가능) ... } 왜 사용하나? 1. null을 직접다루는 것은 NullPointerException이 발생할 수 있어 위험하다. —> 하여 간접적으로 null을 다루는 것. 2. null을 직접다루면 null체크를 위해 if문이 필요하다. —> 코드가 지저분해진다. 하여 null이 생성될 수 있는 객체는 Optional로 한번 감싸서 사용한다. 만약 아래와 같은 코드가 있을 시에 Object result = getResult(); result는 Result타입.. 2021. 12. 30.
Lambda 06 Stream의 연산 (중간 연산과 최종 연산) 스트림의 중간 연산 스트림의 최종 연산 최종 연산 설명 void forEach(Consumer 2021. 12. 29.
Lambda 05 Stream 스트림 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것 (데이터 소스 = 컬렉션, 표준화된 방법 = List, Set, Map) List, Set, Map, 배열은 모두 사용 방법이 다르다. 하지만 JDK 1.8부터 Stream 등장하면서 이들을 같은 방법으로 사용할 수 있게 되었다. public class Ex{ public static void main(String[] args) { List list = Arrays.asList(1, 2, 3, 4, 5); Stream intStream = list.stream(); Stream strStream = Stream.of(new String[]{"a", "b", "c"}); Stream evenStream = Stream.iterate(0, n -.. 2021. 12. 27.
Lambda 04 메소드 참조 생성자의 메소드 참조 종류 람다 메서드 참조 static메소드 참조 (x) -> ClassName.method(x) ClassName::method 인스턴스메소드 참조 (obj, x) -> obj.method(x) ClassName::method 특정 객체의 인스턴스메소드 참조 (x) -> obj.method(x) obj::method - 매개변수 없는 경우 Supplier s = () -> new MyClass(); //메소드참조로 수정 Supplier s = MyClass::new; - 매개변수 있는 경우 // 매개변수 1개인 경우 Function s = (i) -> new MyClass(i); // 인자로 Integer타입을 주는 것을 알고 있으므로, i는 생략가능하다. //메소드참조로 수정 Fun.. 2021. 12. 26.