LomBok @Delegate 를 이해하기위해서 학습테스트

2013-02-02 23:38

LomBok @Delegate 를 이해하기위해서 학습테스트 해보았습니다......(영어가 약하고 소스 상에서 테스트를 찾아보기 어지러워서 ) --;;;;

https://github.com/rzwitserloot/lombok http://projectlombok.org/features/Delegate.html http://gitblog.ihoney.pe.kr/blog/2013/01/23/use-lombok-annotation-in-java-project/



import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import java.util.List; import lombok.Delegate; import org.junit.Test; import com.google.common.collect.Lists; public class Lombok_Delegate_학습_Test { @Test(expected=NullPointerException.class) public void 초기화는해야하네요(){ class Bean{ @Delegate List<String> 초기화되지않은리스트; } Bean bean=new Bean(); bean.get(0); } @Test(expected=IndexOutOfBoundsException.class) public void 빈리스트(){ class Bean{ @Delegate List<String> 빈리스트=Lists.newArrayList(); } Bean bean=new Bean(); bean.get(0); } @Test public void 리스트행위(){ class Bean{ @Delegate List<String> 리스트=Lists.newArrayList(); } Bean bean=new Bean(); bean.add("문자열"); assertThat(bean.get(0), is("문자열")); //..... } @Test public void 리스트_FooList(){ BeanWithFooList bean=new BeanWithFooList(); //bean.get(0); 컴파일 에러 } /*@Delegate 속성 들 테스트 를 위해 작성*/ static class BeanWithFooList{ private interface FooList{ //다음줄을 주석 풀면 컴파일 오류 //List 에 존재하지 않는 메서드는 넣을 수없음 //void aaa(); //다음을 주석 풀면 //단순하게 이클립스상에서 파라메터의 이름을 arg0 이런식으로 나타내지 않기 위해 사용됨 ㅡㅡ; //void add(String item) } @Delegate(types=FooList.class) List<String> 리스트=Lists.newArrayList(); } static class BeanWithBarList{ private interface 구현하지않을메서드{ int size(); } @Delegate(excludes=구현하지않을메서드.class) List<String> 리스트=Lists.newArrayList(); } static class Bean2{ //아래 주석을 둘다 제거 하면 컴파일 에러 //@Delegate List<String> 리스트=Lists.newArrayList(); //@Delegate List<String> 리스트2=Lists.newArrayList(); } }

1개의 의견 from SLiPP

의견 추가하기

연관태그

← 목록으로