본문 바로가기
  • 개발자를 꿈꾸는 중
Java/Generic

Generic <?> - 제네릭 와일드 카드

by 느보리 2022. 8. 15.
반응형

제네릭을 사용하는 이유가 데이터 형식에 의존/영향받지 않고 하나의 코드 구현으로 여러 데이터 타임들을 다루기 위해서이다.

암묵적으로 아래의 표대로 사용이 된다.

암묵적이라는 말 그대로 굳이 저렇게 사용안하고 마음대로 정해 사용해도 무관하다. 하지만 나처럼 이마저도 귀찮아서 더욱 간편한 것을 바라는 마음이 생기기도 한다.

이 경우 사용할 수 있는게 "와일드 카드 "이다

이름만 보면 되게 생뚱맞지만 이것은 아주 유용한 아이이다.

<>안에 ?를 넣어 사용하는데 이렇게 하면 모든 클래스나 인터페이스 타입이 올 수 있다. 즉 아무거나 넣으면 된다. 

예시코드를 보여주겠다.

@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