728x90

<?> 는 와일드카드 타입이다. 즉 모든 타입을 의미한다. 주로 타입 인자를 알지 못할 때 쓰인다.

그러면 그냥 List와 List<?>의 차이는 무엇일까?

List<?> 를 매개변수로 사용하는 메서드는 List의 원소를 읽는 것은 가능하지만, 쓰는 것은 불가능하다.

 

읽기

List, List<?> 둘 다 파라메터로 받아 와서 읽는 것은 가능하다.

 

 

쓰기

코드상에서 바로 에러를 잡을 수 있다.(컴파일 전 타입체크)

List<?>는 write를 하지 못한다는 것을 알 수 있다.

+ Recent posts