티스토리 뷰

JAVA

[Rambda] 함수리턴

박중수 2015. 4. 9. 18:56

자바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 메소드에 인자로 전달이 가능하다.


이런식으로 메소드에서도 함수를 리턴할 수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/06   »
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
글 보관함