Generic 제약
- 하는 이유 : Integer 타입 전용으로 만든 클래스에 문자열 파라미터가 들어가면 컴파일과정에서 오류가 발생하지 않고 서비스 호출 시점에 오류 발생하는 오류 피하고자 제너릭에 제한 걸어줌
Utill2클래스 생선
lass Util2{
//extends 이용해서 제약 걸음
public static <T extends Number> int compare(T t1, T t2) {
double v1 = t1.doubleValue();
double v2 = t2.doubleValue();
return Double.compare(v1, v2);
}
}
Main
public class T04GenericMethodTest {
public static void main(String[] args) {
//앞에 작으면 음수
int result1 = Util2.compare(10, 20);//-1
System.out.println(result1);
System.out.println("-----------------------------------");
//앞에 크면 양수
int result2 = Util2.compare(3.14, 3);
System.out.println(result2);
//에러 나는 이유 : String 타입이라서 들어올수 있는 타입은 Number랑 Number 하위 타입
// System.out.println(Util2.compare("C", "JAVAs"));
}
}
원본
더보기
package kr.or.ddit.basic;
class Util2{
//extends 이용해서 제약 걸음
public static <T extends Number> int compare(T t1, T t2) {
double v1 = t1.doubleValue();
double v2 = t2.doubleValue();
return Double.compare(v1, v2);
}
}
public class T04GenericMethodTest {
public static void main(String[] args) {
//앞에 작으면 음수
int result1 = Util2.compare(10, 20);//-1
System.out.println(result1);
System.out.println("-----------------------------------");
//앞에 크면 양수
int result2 = Util2.compare(3.14, 3);
System.out.println(result2);
//에러 나는 이유 : String 타입이라서 들어올수 있는 타입은 Number랑 Number 하위 타입
// System.out.println(Util2.compare("C", "JAVAs"));
}
}
'JAVA > 수업' 카테고리의 다른 글
T01Thread 싱글 스레드 프로그램 (0) | 2024.01.26 |
---|---|
T05WildCard (1) | 2024.01.25 |
T03GenericMethod (1) | 2024.01.24 |
T02GenericClass (0) | 2024.01.24 |
T08HashMapTest (0) | 2024.01.23 |