궁금증 연구소

안녕하세요. 궁금증연구소 입니다.

오늘 포스팅 주제는 "[java] 와일드카드의 쓸모:: 읽을수 있으나, 쓸수 없다" 입니다.

 

코드

JJava에서 와일드카드를 사용할 때 "읽지만 쓰지 않음"이라는 문구는 컬렉션의 내용에 액세스할 수 있는 기능(즉, 해당 요소를 읽는 것)을 의미하지만 요소를 추가하거나 제거하여 컬렉션의 내용을 수정할 수는 없습니다.

Java의 와일드카드는 일반 유형을 나타내는 데 사용됩니다. 더 넓은 범위의 유형을 매개변수로 사용할 수 있도록 제네릭 유형 선언에 와일드카드를 사용할 수 있습니다. 와일드카드에는 상한 와일드카드(? extends)와 하한 와일드카드(? super)의 두 가지 유형이 있습니다.

상한 와일드카드와 함께 와일드카드를 사용하면 지정된 유형의 모든 하위 유형을 해당 매개변수로 사용할 수 있습니다. 즉, 요소를 검색하기 위해 컬렉션에 액세스할 수 있지만 와일드카드의 특정 하위 유형을 알 수 없기 때문에 컬렉션에 새 요소를 추가할 수 없습니다.

 

 

List<? super Integer> list = new ArrayList<Number>();
list.add(new Integer(3)); // OK, can add an Integer object to the list
Integer num = list.get(0); // Compile error, cannot read from the list

하한 와일드카드(? super)와 함께 Java에서 와일드카드를 사용하는 경우 컬렉션에 요소를 추가할 수 있지만 와일드카드를 사용하여 컬렉션에서 요소를 읽을 수는 없습니다.

하한 와일드카드는 컬렉션에 추가할 수 있는 요소 유형의 하한을 지정하는 데 사용됩니다. 지정된 유형의 상위 유형을 매개변수로 사용할 수 있습니다. 즉, 컬렉션에 요소를 추가할 수 있지만 와일드카드의 특정 하위 유형을 알 수 없기 때문에 와일드카드를 사용하여 컬렉션에서 요소를 읽을 수 없습니다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading