자바스크립트에서의 함수형, Swift에서의 클로저 형태의 함수형 프로그래밍이 자바8.0에서 람다의 등장으로 인해서 가능하게 되었다.
인터페이스를 좀더 다양한 형태로 사용할 수 있게 해주는게 장점인 것 같다.
첫번째 예제코드는 함수형 인터페이스를 만드는 부분이다. 함수형을 구현할 구현부를 선언하는데...구현부로 쓸 추상메소드는 1개밖에 쓸 수 없다는 점이다.
지금 예제코드는 단순하게 String을 리턴하는 부분으로 작성되어 있으며, 기본메소드를 만들어서 해당 구현한 값이 잘 들어오는지 확인하였다.
@FunctionalInterface //함수형 선언
public interface Test {
public abstract String run(); //구현부
default void showMeResult(){
System.out.println(run());
}
}
아래 코드는 메인메소드 이다. 여기서 람다식을 활용해서 함수형 인터페이스에서 동작 할 행위와 값을 써 주었고, 아래 showMeResult를 통해서 구현한 기능이 작동하는지를 살펴 보았다. 물론 run 메소드를 실행하면 잘 동작하는지도 확인 가능하다.
public class TestMain {
public static void main(String arg[]){
Test test = ()->{ //람다 표현식
System.out.println("Hello function! ");
return "5 <- this is return value"; //리턴값
};
test.showMeResult(); //인터페이스 기본 메소드 실행
}
}
이처럼 함수형으로 작업을하면 협업을 하거나 기능을 분할해서 만들 때 좀 더 쉽게 로직을 만들수가 있고, 편리하게 꾸밀수가 있는 것 같다.
반응형
'Java(자바)' 카테고리의 다른 글
파일 복사하기, Blob데이터를 파일로 만들기 (0) | 2019.04.25 |
---|---|
Java로 File 만든 날짜 보기 (0) | 2019.04.25 |
jsch 사용법(ssh 연결) (0) | 2019.04.25 |
Java에서 배열형태 문자를 배열로 만들기 (0) | 2019.04.25 |
AOP를 일반자바 프로젝트에서도 해보자 (0) | 2019.04.25 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글