Search

μ œλ„€λ¦­

μ œλ„€λ¦­

λͺ¨λ“  ν΄λž˜μŠ€νƒ€μž…μ„ λ‹€λ£° 수 μžˆλ„λ‘ νƒ€μž… λ§€κ°œλ³€μˆ˜λ‘œ 클래슀/λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜λŠ” 기법

μ œλ„€λ¦­ μ™€μΌλ“œ μΉ΄λ“œ ?

νŠΉμ •ν•˜μ§€ μ•Šμ€ νƒ€μž…μ„ λŒ€μ²΄ν•˜λŠ” 기호
μ™€μΌλ“œ μΉ΄λ“œ ? λ₯Ό μ‚¬μš©ν•΄μ„œ μ„ μ–Έν•˜λ©΄, λͺ¨λ“  νƒ€μž…μ„ μ‚¬μš©ν•  수 μžˆλ‹€.
μžλ°”μ˜ μ œλ„€λ¦­ μ™€μΌλ“œμΉ΄λ“œλŠ” νƒ€μž…μ˜ μœ μ—°μ„±μ„ λ†’μ΄λ©΄μ„œλ„ νƒ€μž… μ•ˆμ „μ„±μ„ μœ μ§€ν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€.

μ‚¬μš© 방법

ν΄λž˜μŠ€νƒ€μž…<?> 객체λͺ…;
Java
볡사
μ’…λ₯˜
μ„ μ–Έ 방식
의미
(?)
List<?>
λͺ¨λ“  νƒ€μž…μ˜ μš”μ†Œλ₯Ό ν—ˆμš©ν•˜μ§€λ§Œ, 읽기 μ „μš©
μƒν•œ μ œν•œ(? extends T)
List<? extends Number>
Number λ˜λŠ” κ·Έ ν•˜μœ„ 클래슀만 ν—ˆμš© (읽기 μ „μš©)
ν•˜ν•œ μ œν•œ(? super T)
List<? super Integer>
Integer λ˜λŠ” κ·Έ μƒμœ„ 클래슀만 ν—ˆμš© (μ“°κΈ° κ°€λŠ₯)

μ˜ˆμ‹œ μ½”λ“œ

μ™€μΌλ“œ μΉ΄λ“œ κΈ°λ³Έ μ˜ˆμ‹œ μ½”λ“œ

import java.util.*; public class WildcardExample { public static void printList(List<?> list) { for (Object obj : list) { System.out.println(obj); } } public static void main(String[] args) { List<String> stringList = Arrays.asList("A", "B", "C"); List<Integer> intList = Arrays.asList(1, 2, 3); printList(stringList); printList(intList); } }
Java
볡사

μƒν•œ μ œν•œ μ™€μΌλ“œμΉ΄λ“œ (? extends T)

import java.util.*; public class WildcardExample { public static double sum(List<? extends Number> list) { double sum = 0.0; for (Number num : list) { // Number둜 읽기 κ°€λŠ₯ sum += num.doubleValue(); } return sum; } public static void main(String[] args) { List<Integer> intList = Arrays.asList(1, 2, 3); List<Double> doubleList = Arrays.asList(1.1, 2.2, 3.3); System.out.println(sum(intList)); // 좜λ ₯: 6.0 System.out.println(sum(doubleList)); // 좜λ ₯: 6.6 } }
Java
볡사

ν•˜ν•œ μ œν•œ μ™€μΌλ“œμΉ΄λ“œ (? super T)

import java.util.*; public class WildcardExample { public static void addNumbers(List<? super Integer> list) { list.add(10); list.add(20); // list.add(3.5); // ❌ 컴파일 였λ₯˜: Double은 Integer의 ν•˜μœ„ ν΄λž˜μŠ€κ°€ μ•„λ‹˜ } public static void main(String[] args) { List<Number> numList = new ArrayList<>(); addNumbers(numList); System.out.println(numList); // 좜λ ₯: [10, 20] } }
Java
볡사