Java

[JAVA] The type parameter T should not be bounded by the final type Integer. Final types cannot be further extended

Seong-Jun 2025. 2. 20. 14:56
728x90
반응형
SMALL

The type parameter T should not be bounded by the final type Integer. Final types cannot be further extended

유형 매개변수 T는 최종 유형 Integer에 의해 제한되어서는 안 됩니다. 최종 유형은 더 이상 확장할 수 없습니다.

 

자바에서 제네릭 클래스를 만들 때 <T extends Integer>를 했을 때 발생한 경고메시지다. 타입 매개변수에 extends 키워드를 사용할 때 확장이 가능한 클래스를 사용해야한다. 하지만 Integer는 final로 선언되어 있으므로 확장이 불가능하기 때문에 타입매개변수로 사용하려고 할 때 경고메시지가 출력된다.

 

만약 Integer로 해도 동작은 되지만 이렇게 했을 경우 제네릭을 사용하는 의미가 없어진다. 왜냐 제네릭은 클래스 또는 메소드에서 사용되는 다양한 데이터타입을 일반화 시켜서 정의하는 방법인데 Integer로 해버리는 순간 이 방법이 적용이 안되기 때문이다. 그래서 Number처럼 final로 선언되어 있지 않은 확장이 가능한 클래스로 변경해야한다.

728x90
반응형
LIST