![]() |
1
23
原因是test.class属于类型class<test>。不能将类型class<test>的引用分配给类型class<t>的变量,因为它们不是同一回事。然而,这是有效的:
通配符允许将类<t>和类<test>引用分配给testtype。
有大量关于Java泛型行为的信息。
Angelika Langer Java Generics FAQ
. 我将根据使用
考虑以下方法:
这将允许成功编译以下语句:
但以下内容无法编译:
现在考虑这些陈述:
第二行未能编译并产生此错误
很容易理解为什么第二行不能在这里编译。无法分配的实例
规则是不能将实例分配给实例类型的子类变量,因为不能保证该变量是兼容的。
仿制药的行为方式相似。在泛型方法签名中,
通配符增加了额外的灵活性,因为下面将编译:
自从
|
![]() |
2
4
假设我扩展测试:
现在,当我调用
声明变量
|
![]() |
3
1
去掉条件,错误就更好了…
|
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
milczi · Swift通用无强制展开向下投射 6 年前 |
![]() |
bugs · Typescript-泛型类型扩展自身 6 年前 |
![]() |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
![]() |
Blankdud · 具有默认数据的通用对象创建方法 6 年前 |
![]() |
Tim Hutchison · 从泛型对象列表中读取泛型值 6 年前 |