@Testpublicvoidtest(){Photophoto=requestPhoto();assertNull(requestPhoto().getHi());assertEquals(requestPhoto().getTitle(),"accusamus beatae ad facilis cum similique qui sunt");assertEquals(requestTodo().getTitle(),"delectus aut autem");}
이처럼 클라이언트는 requestPhoto(), requestTodo() 이런식으로 요청별로 여러가지의 함수를 만들어야한다 하지만 제네릭 타입을 이용하면 하나의 함수로 통일시킬수있다
제네릭타입 사용 후
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public<TextendsResponse>TrequestApi(Stringurl,Class<T>classType){Tresult=(T)getWebClient().get().uri("/{url}/1",url).retrieve().bodyToMono(classType).block();return(T)result;}@Testpublicvoidtest2(){assertEquals(requestApi("photos",Photo.class).getTitle(),"accusamus beatae ad facilis cum similique qui sunt");assertEquals(requestApi("todos",Todo.class).getTitle(),"delectus aut autem");}
자, 이제 여러가지 함수를 만들 필요 없이 requestApi() 함수 하나로 통일 시킬수있게 되었다
다형성을 이용해야하기때문에 꼭 Request Class는 공통적으로 부모클래스를 상속받아야한다
댓글 쓰기