
ν΄λμ€ λ΄λΆμμ μ¬μ©ν λ°μ΄ν° νμ μ μΈλΆμμ μ§μ νλ κΈ°λ²
public class ν΄λμ€λͺ
<T> {...}
public interface μΈν°νμ΄μ€λͺ
<T> {...}
| νμ | μ€λͺ |
|---|---|
T | Type |
E | Element |
K | Key |
V | Value |
N | Number |
public class Box<T> {
private T;
public T get() {
return t;
}
public void set(T t) {
this.t = t;
}
public static void main(String[] args) {
Box<Integer> integerBox = new Box<>();
Box<String> stringBox = new Box<>();
integerBox.set(new Integer(10));
stringBox.set(new String("Hello World"));
System.out.println("Integer Value :%d\n", integerBox.get());
System.out.println("String Value :%s\n", stringBox.get());
}
}
public interface GenericInterface<T> {
T performAction(T t);
}
public class GenericClass<T> implements GenericInterface<T> {
@Override
public T performAction(final T t) {
return t;
}
public static void main(String[] args) {
GenericClass<String> stringInstance = new GenericClass<>();
String result = stirngInstance.performAction("Hello");
System.out.println(result);
GenericClass<Integer> integerInstance = new GenericClass<>();
Integer integerResult = integerInstance performAction(25);
System.out.println(integerResult);
}
}
// μ΄ μμΌλ μΉ΄λλ μ νμ΄ μμ. μ΄λ€ νμ
μ΄λ μ¬ μ μμΌλ©°, κ°μ₯ μΌλ°μ μΈ ννμ μμΌλ μΉ΄λ
public static void printList(List<?> list) {
for (Object item: list)
System.out.println(item);
}
// μμ κ²½κ³(νΉμ νμ
or νμ νμ
)λ₯Ό μ€μ νλ μμΌλ μΉ΄λ
public static double sumOfList(List<? extends Number> list) {
double s = 0.0;
for (Number n : list)
s += n.doubleValue();
return s;
}
// νμ κ²½κ³(νΉμ νμ
or μμ νμ
)λ₯Ό μ€μ νλ μμΌλ μΉ΄λ
public static void addNumbers(List<? super Integer> list) {
for (int i = 1; i <= 10; i++)
list.add(i);
}
? ν€μλλ‘ ννν¨