728x90
20221004(화)
- 목차
- andThen()과 compose() 디폴트 메소드
- 메소드 참조
- 입력 스트림과 출력 스트림
< andThen()과 compose() 디폴트 메소드 >
- 함수적 인터페이스가 갖고 있는 디폴트 메소드
- 두 개의 함수적 인터페이스를 순차적으로 연결해 실행
- 첫 번째 리턴값을 두 번째 매개값으로 제공해 최종 결과값 리턴
- andThen() 디폴트 메소드
- 인터페이스 AB = 인터페이스A.andThen(인터페이스 B);
- 최종결과 = 인터페이스 AB.method();
- A를 쓰고 나서 B를 쓴다. - compose() 디폴트 메소드
- 인터페이스 AB = 인터페이스A.compose(인터페이스 B);
- 최종결과 = 인터페이스 AB.method();
- B를 먼저 작동하고 A가 진행된다.
< 메소드 참조 >
- 메소드 참조의 목적
: 람다식에서 불필요한 매개 변수를 제거하는 것
(left, right) -> Math.max(left, right) ➡ Math :: max;
메소드 참조 | 전(or case 1) | 후(or case 2) |
정적 메소드와 인스턴스 메소드 참조 | 클래스 :: 정적메소드 | 참조변수 :: 인스턴스메소드 |
매개 변수의 메소드 참조 | (a, b) -> {a.instanceMethod(b);} | 클래스 :: instanceMethod |
생성자 참조 | (a, b) -> {return new 클래스(a, b);} | 클래스 :: new |
- 매개변수와 리턴타입에 따른 람다식
- 람다식이란 문법이 없다면 method를 따로 하나 만들고 호출해야 함.
- 하지만 실행 구문을 다이렉트로 쓰고 싶을 경우 사용.
매개변수 | 리턴타입 | 람다식 |
X | X | () -> {} |
X | O | () -> {return 값;} |
O | X | 1개 a, 2개 이상(a, b) -> {} |
O | O | a -> {return 값;} |
< 입력 스트림과 출력 스트림 > : 작업 방향!!
- 입력
: 읽기.(읽어들인다.) 들 (입) 入 / 자바 프로그램 안에 내용물이 들어오면 입력!
(키보드로 데이터 단순입력 X) - 출력
: 쓰기(내보낸다.) 날 (출) 出 / 자바 프로그램 안에서 내용물이 나가면 출력! - InputStream : 자바 프로그램에서 외부에 있던 것을 읽어들이는 의미.
- OutputStream : 자바 프로그램에서 외부로 내보내는 것을 의미.
- ✨ 스트림 클래스 두 종류
구분 | 바이트 기반 스트림 | 문자 기반 스트림 | ||
그림, 멀티미디어 등의 바이너리 데이터 | only 문자 데이터 | |||
입력 스트림 | 출력 스트림 | 입력 스트림 | 출력 스트림 | |
최상위 클래스 | InputStream | OutputStream | Reader | Writer |
하위 클래스 (예) |
XXXInputStream (FileInputStream) |
XXXOutputStream (FileOutputStream) |
XXXReader (FileReader) |
XXXWriter (FileWriter) |
* 문자 데이터를 바이트로 바꿀 수 있지만, 편한 작업을 위해 문자 기반 스트림을 따로 구분한다.
- input, output으로 작업 방향 결정
* 자원(Resource, XXX)의 종류에 따라 스트림이 정해져있다.
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[52일차] 보조 스트림 / 네트워크 기초 (0) | 2022.10.08 |
---|---|
[51일차] InputStream / OutputStream / Reader / Writer / 콘솔 입출력 (0) | 2022.10.07 |
[49일차] 람다식 기본 문법 / 타겟 타입과 함수적 인터페이스 / 표준 API의 함수적 인터페이스 (0) | 2022.10.03 |
[48일차] 제네릭 타입 / 멀티 타입 파라미터 / 제네릭 메소드 / 제한된 타입 파라미터 / 와일드카드 타입 / 제네릭 타입의 상속과 구현 (0) | 2022.09.29 |
[47일차] Set 컬렉션(HashSet) / Map 컬렉션(HashMap, Hashtable, Properties) / 검색 기능을 강화시킨 컬렉션 / LIFO와 FIFO 컬렉션 (0) | 2022.09.29 |