int c = a*b;
이 문은 실제로 작동은 Integer
에 의해 제한되어 있으므로 삭제 후, a
및 b
의 종류는 Integer
을 그리고 그들은 int로 언 박싱 있습니다.
return c;
이 메서드의 반환 형식 때문에 작동하지 않습니다 그것은 T
이며, 비록 <T extends Integer>
및 Integer
그렇게 T
만 Integer
될 수 final
이다 Integer
아니라, 컴파일러는 그것을 허용하지 않습니다 , 그것은 바인딩 된 타입의 finality
을 고려하지 않기 때문에 (예를 들어, 관련 메소드는 바운드 타입의 서브 클래스의 인스턴스를 받아 들일 수 있으며, 어떤 서브 클래스에 대해서도 자동 상자 int
을 자동 상자로 만들 수 없습니다 바인드 된 타입의 클래스)
Integer
에 반환 형식을 변경하면 코드를 통과 컴파일 할 것입니다 : 제네릭 형식 행 형식으로 물론, 그것은 의미가 Integer
을 사용하지 않습니다
public static <T extends Integer> Integer addNumber(T a , T b){
int c = a*b;
System.out.println(c);
return c;
}
(또는 최종 클래스) 매개 변수.
이상의 기준은 A * B를을 =. – Pooja
@Pooja 그것은 나를 위해 않습니다. 방금 해봤 어. – Eran