Java会隐藏类型参数吗?我发现很难亲自测试,因为Java泛型在运行时不会被实例化。
例如,给定以下代码:
public class NestedGeneric<T> {
private InnerGeneric<T> innerGenericInstance;
private static class InnerGeneric<T> {
public T innerGenericField;
}
NestedGeneric() {
innerGenericInstance = new InnerGeneric<T>();
}
}
以下两个语句都可以编译通过:
NestedGeneric<Integer> test1 = new NestedGeneric<Integer>();
NestedGeneric.InnerGeneric<String> test2 = new NestedGeneric.InnerGeneric<String>();
当传递类型参数并调用构造函数时,
NestedGeneric
中的T
是什么?它总是与传递给nestedGeneric
的类型参数相同吗?换句话说,外部类的类型参数是否可以传递给内部类的泛型类型声明?