반응형
제네릭을 사용하는 이유가 데이터 형식에 의존/영향받지 않고 하나의 코드 구현으로 여러 데이터 타임들을 다루기 위해서이다.
암묵적으로 아래의 표대로 사용이 된다.
암묵적이라는 말 그대로 굳이 저렇게 사용안하고 마음대로 정해 사용해도 무관하다. 하지만 나처럼 이마저도 귀찮아서 더욱 간편한 것을 바라는 마음이 생기기도 한다.
이 경우 사용할 수 있는게 "와일드 카드 "이다
이름만 보면 되게 생뚱맞지만 이것은 아주 유용한 아이이다.
<>안에 ?를 넣어 사용하는데 이렇게 하면 모든 클래스나 인터페이스 타입이 올 수 있다. 즉 아무거나 넣으면 된다.
예시코드를 보여주겠다.
@PutMapping("/book/{id}")
public ResponseEntity<?> update(@PathVariable Long id, Book book){
return new ResponseEntity<>(bookService.update(id, book), HttpStatus.OK);
}
위의 코드는 책의 정보를 업데이트 함수이다. 여기서 <?>의 장점이 또 하나 보이는데, ResponseEntity를 제네릭 와일드 카드타입으로 설정했고 빈 제네릭 타입을 <> return 한다.
즉, <?>는 bookService.update()가 받아오는 데이터를 보고 알아서 타입을 지정해준다
반응형
'Java > Generic' 카테고리의 다른 글
Generic 타입 범위 제한 (0) | 2022.05.10 |
---|---|
Generic 메서드 (0) | 2022.05.10 |
Generic - [제네릭] 기본 (0) | 2022.05.09 |