티스토리 뷰
메소드의 이름이 new라는 것을 제외하면 메소드 레퍼런스와 유사하다.
클래스명::new로 사용한다. 예를 들자면 Object::new 는 Object 객체의 생성자를 의미한다
문자열 리스트를 버튼 리스트로 만들 수 있다.
List<String> label = ....; //이미 값이 들어있다.
Stream<Button> stream = label.stream().map(Button::new);
List<Button> btnList = stream.collect(Collectors.toList());
이렇게 하면 label에 있는 문자열이 들은 Button의 리스트가 생성된다.
또한 배열도 생성자 레퍼런스를 만들 수 있다.
String::new는 파라미터가 1개인 생성자 레퍼런스다.
size->new String[size]; 와 같은 의미다.
stream 인터페이스는 Object의 배열을 리턴하는 toArray() 메소드를 가지고 있다.
필요로 하는 객체의 배열을 받고자 하면
stream.toArray(객체명[]::new);
이렇게 사용하면 된다.
예를 들어 Button의 배열을 받고 싶다면
Button[] btns = stream.toArray(Button[]::new);
라고 치면 버튼의 배열을 얻을 수 있다.
하지만 이 코드에는 배열의 사이즈를 유추할 수 있는 곳이 없는게 미스테리.
내일 일과시간에 프로젝트에 적용해보면서 실험해봐야겠다.
답이 나온다면 바로 업데이트 해야지
'JAVA' 카테고리의 다른 글
7. default 메소드 (0) | 2015.03.30 |
---|---|
6. 변수 유효범위 (0) | 2015.03.29 |
4. 메소드 레퍼런스 (0) | 2015.03.29 |
3. 함수형 인터페이스 (0) | 2015.03.29 |
2. 람다 표현식 (0) | 2015.03.29 |
- Total
- Today
- Yesterday
- 리액트
- 자바 성능
- Clojure
- rambda
- Swift 2.0
- 프로세서
- Stream
- RAMDA
- 퍼포먼스
- 람다
- 코어
- 컴퓨터 시간
- 알람
- 성능
- 자료구조
- javascript
- 시간
- Java
- 클로저
- opensource
- Java8
- 날짜
- 성능개선
- 자바
- Docker
- Jackson
- 메모리
- react
- json
- gitlab
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |