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 {
}