제네릭(Generic)이란 결정되지 않은 타입을 파라미터로 만들고 실제 사용할 떄 파라미터를 구체적인 타입으로 대체시키는 기능
제네릭 클래스
public class Box <T> {
public T content;
}
Box<String> box = new Box<String>();
box content = 100;
String content = box.content;
public cllass 클래스명<A,B, ...> {...}
public interface 인터페이스명<A,B, ...> {...}
제네릭 메소드
public <A,B, ...> 리턴타입 메소드명 (매개변수, ...) {...]
ex) public <T> Box<T> boxing(T t) {...}
제한된 타입 파라미터
public <T extends 최상위타입> 리턴타입 메소드 (매개변수, ...) { ...}
public <T extends Number> boolean compare(T t1, T t2) {
double v1 = t1.doubleValue();
double v2 = t2.doubleValue();
return (v1 == 2v);
}
타입의 최상위 타입을 정해서 제한합니다.
와일드카드 타입 파라미터
제네릭 타입을 매개값이나 리턴 타입으로 사용할 때 타입 파라미터로 ?를 사용할 수 있다.
리턴타입 메소드명 (제네릭 타입<? extends Student> 변수 {...}
Student클래스의 자식클래스만 사용 가능하다.
리턴타입 메소드명 (제네릭 타입<? super Worker> 변수 {...}
Worker와 부모 클래스인 Person만 가능하도록 매개변수를 다음과 같이 선언할 수 있다.
리턴타입 메소드명 (제네릭타입<?> 변수) {...]
모두가 들어갈 수 있다.
'코딩 > 자바' 카테고리의 다른 글
| 이것이 자바다 스트림 (0) | 2023.11.28 |
|---|---|
| 이것이 자바다 람다 (0) | 2023.11.26 |
| String 메소드 자바 17 정리 (1) | 2023.11.26 |
| 스프링 버전별 정리 (0) | 2023.10.20 |
| 자바 버전별 정리 (1) | 2023.10.20 |