728x90
<?> 는 와일드카드 타입이다. 즉 모든 타입을 의미한다. 주로 타입 인자를 알지 못할 때 쓰인다.
그러면 그냥 List와 List<?>의 차이는 무엇일까?
List<?> 를 매개변수로 사용하는 메서드는 List의 원소를 읽는 것은 가능하지만, 쓰는 것은 불가능하다.
읽기
List, List<?> 둘 다 파라메터로 받아 와서 읽는 것은 가능하다.
쓰기
코드상에서 바로 에러를 잡을 수 있다.(컴파일 전 타입체크)
List<?>는 write를 하지 못한다는 것을 알 수 있다.
'언어 > 자바' 카테고리의 다른 글
JAVA 21에서 에이전트 동적 로딩(Dynamic Agent Loading)을 금지를 하려고 하는 이유 (1) | 2025.03.13 |
---|---|
함수형 인터페이스 정리 (1) | 2025.03.12 |
[java] 클래스, 인스턴스, 지역 변수가 메모리에 올라가는 방식 (0) | 2024.10.08 |
[JAVA] List<?> 와 List<Object>의 차이 (2) | 2022.09.21 |