class Box<T> {
private T t;
public void set(T t) { this.t = t;}
public T get() { return t; }
}
@Test
void listTest() {
List l = new ArrayList();
l.add(10);
l.add(5.0);
int n = (Integer) l.get(0);
assertEquals(10, n);
assertEquals(5.0, (Double) l.get(1));
List<Integer> gl = new ArrayList<>();
gl.add(20);
// gl.add(5.3); compile error
assertEquals(20, gl.get(20));
}
class FruitBox <T extends Fruit> {
//
}
&
사용class Box <T entends Fruit & Vegetable> {
}
?
를 와일드 카드라고한다.&
를 사용할 수 없다.? extends T: T와 자손들 사용 가능
? super T: T와 조상들 사용가능
public static <T> void sort(T t) {
//
}
public static <E> boolean containsElement(E [] elements, E element){
for (E e : elements){
if(e.equals(element)){
return true;
}
}
return false;
}
public static boolean containsElement(Object [] elements, Object element){
for (Object e : elements){
if(e.equals(element)){
return true;
}
}
return false;
}
자세한 내용은 아래 블로그 글들이 좋았다.