JAVA

Generics_제한

고민말고생각하는사람 2024. 3. 21. 16:57

Generic  클래스에 타입 변수를 지정할 때, extends 를 통해 타입에 제한을 둘 수 있다.

public class Zoo<T extends Animal> {

    ArrayList<T> list = new ArrayList<>();

}

위와 같이 작성하면 타입변수 <T> 에는 Animal 의 자손 클래스만 입력 가능해진다.

public class Animal {
}
public class Dog extends Animal{
}
 
public class LimitedGeneric {
    public static void main(String[] args) {
        Zoo<Dog> dogPark = new Zoo<>();

//        Zoo<Radio> RadioPark = new Zoo<Radio>();	// 컴파일 에러.

    }
}

허용된 타입 외의 정보를 넣으려 하면, 컴파일 단계에서 걸러낼 수 있다.

 

// Animal을 상속하지 않는다.
public class Radio {
}