티스토리 뷰
자바8에서는 메소드에서 함수도 리턴할 수 있다.
이전에 했던 파일필터를 약간 변형하여
디렉토리이면서 이름이 4글자 이상인 파일명을 필터링하는 함수를 리턴하는 메소드를 만들어보겠다
public static Predicate<File> checkDirectory(int minLength){
return file->file.getName().length() > minLength && file.isDirectory();
}
public static void main(String[] arg){
File[] fileList = new File("경로").listFiles();
Predicate<File> filter = file->file.isDirectory();
int minLength = 4;
List<File> directories = Arrays.stream(fileList)
.filter(checkDirectory(minLength))
.collect(Collections.toList());
}
checkDirectory(int) 메소드는 Predicate<File> 타입을 리턴하므로
filter 메소드에 인자로 전달이 가능하다.
이런식으로 메소드에서도 함수를 리턴할 수 있다.
'JAVA' 카테고리의 다른 글
try-with-resource (예외처리) (0) | 2015.04.09 |
---|---|
자바8의 LocalDate를 이용해 만든 전역일 계산기 (0) | 2015.04.09 |
[JAVA8] 파일 필터 만들기 (0) | 2015.04.09 |
[Rambda] 람다 표현식의 파라미터 (0) | 2015.04.07 |
[병행성] 원자값 연산 (0) | 2015.04.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Docker
- 알람
- 컴퓨터 시간
- 람다
- 클로저
- 성능
- Java8
- json
- Swift 2.0
- 자바
- 성능개선
- Jackson
- Stream
- 리액트
- 날짜
- 프로세서
- opensource
- 퍼포먼스
- javascript
- 메모리
- RAMDA
- 자바 성능
- rambda
- 시간
- Java
- react
- 자료구조
- 코어
- Clojure
- 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 |
글 보관함