1
미안하지만 어리석은 질문 일 수도 있지만 답변을 찾을 수 없습니다.Generics 매개 변수가 Java 메소드의 다른 매개 변수를 확장합니다
메서드에 대한 두 개의 generics 매개 변수 중 하나가 다른 매개 변수를 확장 할 수 있습니까?
public class A {
}
public class B extends A {
}
public class C {
}
public class Foo {
public static <R extends A> void f1 (A t, R r){
}
// T and R are generics parameter, R bounds on T
public static <T, R extends T > void f2(T t, R r) {
}
public static void main(String[] args) {
A a = new A();
B b = new B();
C c = new C();
Foo.f1(a, b); // no error
Foo.f1(a, c); // compile error, it's ok
Foo.f2(a, b); // no error
Foo.f2(a, c); // no error ! why?
}
}
마지막 f2
메소드 호출에는 컴파일 오류가없는,하지만 난 C
이 오류가 arised해야 컴파일 A
의 서브 클래스가 아닌 생각합니다. 어떤 도움이 필요합니까?
왜 'T'가 'A'라고 생각합니까? – user2357112