-
@FunctionalInterface annotation개발/JAVA 2019. 8. 12. 01:08
junit을 이용한 단위테스트를 공부하면서 다음과 같은 예제가 있었다.
@FunctionalInterface
public interface Scoreable {
int getScore();
}여기서
@FunctionalInterface
어노테이션이 생소해서 찾아보았다.
기존 인터페이스는 선언만 하여
이를 상속받아 구현하였다.
하지만 jdk8부터 구현뿐만아니라 상속까지 가질 수 있게 되었는데
단일메소드를 선언하고 구현하려고 할때 위의 펑셔널인터페이스를 붙이고 사용할 수 있다.
사용한 예제를 보면
public class ScoreCollection {
private List<Scoreable> scores = new ArrayList<>();
public void add(Scoreable scoreable){
scores.add(scoreable);
}
public int arithmeticMean(){
int total = scores.stream().mapToInt(Scoreable::getScore).sum();
return total / scores.size();
}
}socreCollection 인스턴스가 있을때
add(() ->5);
와같이 scores에 인트값을 넣는데, 람다식이 아닌 방법으로 넣는 부분은 알아보고 다루기로 하겠다.
'개발 > JAVA' 카테고리의 다른 글
double 형 비교 (0) 2020.03.03 Gson을 사용한 JsonArray 형태의 String을 JsonArray로 변환하기 (0) 2019.11.27 jpa join시 join column과 join table 구분 (0) 2019.07.09 이름 규칙 (0) 2019.07.08 java 형변환 (0) 2019.05.09 댓글