제네릭(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

+ Recent posts