假设我有:
class A<T> {
...
}
class B<L extends A<?>> {
...
}
在B的范围内,有没有办法引用L表示的类型的“嵌套”泛型参数T? (显然不是在运行时)
我能找到的只是this,但没有回答我的问题。
答案 0 :(得分:3)
如果您偶尔需要引用?
所代表的类型,那么将它class B<T, L extends A<T>>
设置为尴尬和恼人。
您可以做的是每次需要引用T
时使用通用帮助方法。
例如:
<T, L extends A<T>> void foo(L l) {
// You can refer to both L and T here
}
在B
内,如果您的变量var
类型为L
,则可以
foo((A<?>) var)
以下是一个完整的例子:
public class Example {
static class A<T> {}
static class B<L extends A<?>> {
void bar(L l) {
foo((A<?>) l);
}
}
static <T, L extends A<T>> void foo(L l) {
// You can refer to both L and T here
}
}